Page 1 sur 1

Erreur dans acrobat au telechargement d'un PDF

Posté : 23 févr. 2006, 11:16
par kilianh
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

Posté : 23 févr. 2006, 12:56
par kilianh
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.

Posté : 23 févr. 2006, 15:29
par kilianh
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

Posté : 23 févr. 2006, 16:16
par roumayne
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.

Posté : 23 févr. 2006, 16:20
par [BQS]Jayce
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

Posté : 23 févr. 2006, 17:49
par kilianh
Merci, si vous avez d'autres choses a rajouter sur la commande Header, n'hesitez surtout pas.

Cordialement,

Mickael