Bonjour,
Je voulais savoir si l'utilisation de header(Location...) permet d'ouvrir des fichiers qui ne sont pas d'extension html.
J'ai tenté d'ouvrir un fichier word (.doc) mais ça n'a pas marché.
Merci de m'eclaircir.
Version imprimable
Bonjour,
Je voulais savoir si l'utilisation de header(Location...) permet d'ouvrir des fichiers qui ne sont pas d'extension html.
J'ai tenté d'ouvrir un fichier word (.doc) mais ça n'a pas marché.
Merci de m'eclaircir.
cet entête n'ouvre rien, c'est juste un ordre envoyé au navigateur pour dire "ouvre l'URL ..."
Salut,
Tu utilises avec la fonction header de php un changement de contenu avec un 'content-type' pour word puis par ex pour fichier pdf:
Code:
1
2
3 header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="fichierPdf.pdf"');
Word = application/msword
Merci pour ces eclaircissements.
En fait moi je travaille avec une BD mysql et un repertoire.
Je recupère le nom du fichier(à travers une requete sql) et je cherche le fichier correpondant dans mon repertoire afin de l'ouvrir à l'aide de header.
Donc le type du fichier n'est pas connu à l'avance.
Mes fichiers sont de type html,pdf et doc.
Mon instruction php actuelle qui ouvre les fichiers html est: header('Location:'snom);
Je precise que $nom est la variable qui contient le nom de mon fichier.
Donc comment gerer ces differente extensions ensemble?
Merci toujours de m'aider!
Tu peux faire un truc de genre:
J'ai pris cela sur le Web, ya peut être des erreurs mais ce bout de code donne une idée de développement.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 //First, see if the file exists if (!is_file($file)) { die("<b>404 File not found!</b>"); } //Gather relevent info about file $len = filesize($file); $filename = basename($file); $file_extension = strtolower(substr(strrchr($filename,"."),1)); //This will set the Content-Type to the appropriate setting for the file switch( $file_extension ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; case "mp3": $ctype="audio/mpeg"; break; case "wav": $ctype="audio/x-wav"; break; case "mpeg": case "mpg": case "mpe": $ctype="video/mpeg"; break; case "mov": $ctype="video/quicktime"; break; case "avi": $ctype="video/x-msvideo"; break; //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files) case "php": case "htm": case "html": case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break; default: $ctype="application/force-download"; } //Begin writing headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); //Use the switch-generated Content-Type header("Content-Type: $ctype"); //Force the download $header="Content-Disposition: attachment; filename=".$filename.";"; header($header); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$len);