Bonjour
J'ai écrit une application PHP/MySQL qui permet l'envoi et le téléchargement de fichiers.
Les fichiers sont enregistrés dans un répertoire upload et leurs noms dans le système de fichiers sont des hashs MD5.
Une table SQL fait la correspondance entre le nom d'origine du fichier et son hash MD5.
Le téléchargement se fait comme suit :
Cela marche, mais le problème est que cela force le navigateur web à télécharger le fichier (ouverture d'une boîte de dialogue ouvrir avec / enregistrer sous ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 // $path = chemin réel vers le fichier, par exemple "./upload/69579997fcb45501ba1bb873a3c076b4" // $file['name'] = nom issu de la BDD, par exemple "pingouin.png" if (file_exists($path)) { header('Content-Disposition: attachment; filename="'.$file['name'].'"'); header('Content-Type: '.mime_content_type($path)); header('Content-Transfer-Encoding: binary'); header('Content-Length: '. filesize($path)); header('Pragma: no-cache'); header('Accept-Ranges: bytes'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); readfile($path); die(); } else { // en erreur }
J'aimerais que le navigateur puisse décider de lui même de l'action à effectuer en fonction du type MIME du fichier (c'est à dire si c'est une image, l'afficher dans la page courante, si c'est un type non géré, le navigateur propose la boite de dialogue de téléchargement).
Est-ce possible ? Si oui, comment ?
Merci![]()
Partager