Erreur dans acrobat au telechargement d'un PDF

Eléphanteau du PHP | 21 Messages

23 févr. 2006, 11:16

Bonjour,

J'ai une page PHP qui me permet de telecharger des formulaires au format PDF lorsqu'on clique sur le lien. Là, la fenetre de telechargement de windows apparait, quand je choisi de le telecharger, tout va bien mais lorsque je choisi de l'ouvrir, mon fichier se telecharge, Acrobat Reader s'ouvre bien mais ensuite il me genere une erreur :

Image

Donc j'ai ma page php qui propose les telechargements, le lien etant ecrit ainsi :

Code : Tout sélectionner

<a href='telechargement/telecharger.php?fichier=autorisation_prelevement.pdf'>
Il donne donc le nom du fichier a telecharger en parametre a un fichier qui s'occupe du telechargement :

Code : Tout sélectionner

<?php header("Content-type: application/force-download"); header("Content-Disposition: attachment; filename=$fichier"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($fichier)); header("Pragma: no-cache"); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); readfile("$fichier"); ?>
Lorsque je fais la meme chose en HTML pur, çà marche bien, donc çà n'est pas un probleme d'installation de Acrobat.Quelle est mon probleme svp ? Merci.

Cordialement,

Mickael

Eléphanteau du PHP | 21 Messages

23 févr. 2006, 12:56

Bon voila,

En fait j'ai obtenu un nouvel emploi et je remplace qlq1 qui avait ecrit ou trouvé ce script de telechargement.
Pour mieux le comprendre (car çà fait 3 ans que j'ai pas pratiqué le PHP), j'ai essayé de savoir a quoi correspondait chaques lignes de commandes. En faisant qlq essais, j'ai compris les 4 premiers lignes ainsi que la derniere. J'ai ensuite supprimé les lignes suivantes :

Code : Tout sélectionner

//header("Pragma: no-cache"); //header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); //header("Expires: 0");
Et miracle, mon probleme est resolu, çà me force le telechargement et je peux soit ouvrir directement le pdf ou alors le telecharger.
Par contre je n'ai rien trouvé comme renseignements exacts sur ces 3 dernieres lignes de code, pourriez vous m'indiquer leur utilité svp ??

Merci.

Eléphanteau du PHP | 21 Messages

23 févr. 2006, 15:29

Bon apres encore d'autres essais, il semblerait que ce soit juste cette ligne de code qui fait generer l'erreur a l'ouverture d'une image ou d'un fichier PDF :

Code : Tout sélectionner

header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
mais bon, je me repete mais pourriez vous qd mm m'expliquer les fonctions de ces 3 lignes de codes SVP ? Car j'ai telecahrger une documentation PHP sur le site de Nexen mais lorsque je clique sur la fonction "header", çà me marque une erreure, le fichier est peut etre defectueux. Merci

Eléphanteau du PHP | 29 Messages

23 févr. 2006, 16:16

tout ce que je sais sur la fonction header c'est qu'elle permet de faire une redirection.
mais tu peux lancer la recherche sur google (header+php)afin d'obtenir d'autres informations.
bonne chance.

Eléphant du PHP | 67 Messages

23 févr. 2006, 16:20

tout ce que je sais sur la fonction header c'est qu'elle permet de faire une redirection.
mais tu peux lancer la recherche sur google (header+php)afin d'obtenir d'autres informations.
bonne chance.
header ne sert pas qu'a la redirection il sert aussi a connaitre le type du document que tu envoi au navigateur

du genre header('Content-type: application/pdf');

pour lui préciser que le document envoyé est un pdf

meme chose pour une image

cel

Eléphanteau du PHP | 21 Messages

23 févr. 2006, 17:49

Merci, si vous avez d'autres choses a rajouter sur la commande Header, n'hesitez surtout pas.

Cordialement,

Mickael