[resolu] forcer telechargement pdf : ca marche, mais...

forcer telechargement pdf : ca marche, mais... [resolu] - PHP - Programmation

Marsh Posté le 16-03-2006 à 11:48:52    

bonjour !
 
je suis en train de faire un site tout simple qui contient pas mal de catalogues PDF a telecharger.
Je souhaite a tout prix eviter l'ouverture du PDF dans le navigateur, compte tenu du poids eleve de certains de ces catalogues.
 
J ai donc fait en sorte de forcer le telechargement du fichier en question
 
voici mon code (download.php):  
 
$filename = mysql_result($get_file,0,"file_name" ).".pdf";
 
header("Content-Type: application/pdf" );
header("Content-Length: ".filesize('catalog/'.$filename));
header("Content-Disposition: attachment; filename=catalog/".$filename);
readfile("catalog/".$filename);  
 
$filename est recupere sur un base MySQL.
 
Tout marche bien, sur Firefox comme sur IE, or j ai un petit probleme avec IE
 
Sur firefox, le nom du fichier telecharge est bien $filename.pdf
 
or sur IE, le nom de mon fichier une fois telecharge est download.pdf :(. Pas cool si un client veut savoir ce qu il a reellement telecharge. Il semble donc qu IE prend comme nom de fichier le terme "download", correspondant au nom de ma page qui force le telechargement.
 
Avez vous une idee sur une solution pour que sous IE le fichier soit bien xxxx.pdf et non download.pdf ?
 
Merci d avance.


Message édité par nintendose le 16-03-2006 à 13:09:06

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 16-03-2006 à 11:48:52   

Reply

Marsh Posté le 16-03-2006 à 12:47:05    

Code :
  1. header("Content-Disposition: attachment; filename=".$filename.";" );


Il s'attends a un nom de fichier et tu lui donne un "truc" avec un slash...
IE aime pas grand chose on dirait bien :D


Message édité par the_bigboo le 16-03-2006 à 12:48:13
Reply

Marsh Posté le 16-03-2006 à 12:54:47    

Hum en effet, en enlevant le catalog/ du filename, ca marche impec sous IE, mais... Plus sous Firefox !
 
Sous firefox, maintenant le fichier telecharge a le bon nom (ex : catalog2006), mais l extension .pdf saute...
 
Je crois que je vais devoir faire une detection de browser, a moins que quelqu un sache contourner cela ?


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 16-03-2006 à 13:00:13    

Ca serait peut être une bonne idée de dire au navigateur où commence et où finis le nom de fichier.
je sais pas moi, un

Code :
  1. header("Content-Disposition: attachment; filename='".$filename."';" );

marcherait peut être mieux (ca se voit mal, mais j'ai rajouté des ' )

Reply

Marsh Posté le 16-03-2006 à 13:03:30    

hum la, ca ne marche plus sous aucun des deux browsers, le fichier telecharge se nomme 'Catalog2006.pdf' (avec les 2 ')
 
Aaaaaargh
 
Je sens que je vais faire un truc du genre if(IE) { } else { }


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 16-03-2006 à 13:06:10    

ah, finalement, j ai trouve, pas besoin de ' autoure du filename,
 
il suffisait de faire ceci :

Code :
  1. header("Content-Disposition: attachment; filename=".$filename.";" );


 
La presence du ; a la fin est donc obligatoire :D


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 16-03-2006 à 13:14:19    

C'est EXACTEMENT ce que je t'ai dit de faire , premiere réponse :o

Reply

Marsh Posté le 16-03-2006 à 13:19:41    

the_bigboo a écrit :

C'est EXACTEMENT ce que je t'ai dit de faire , premiere réponse :o


vraiment desole, j'avais juste tilte sur le fait que seule la presence du folder genait IE :D
mille excuses  [:nintendose]


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 16-03-2006 à 13:51:32    

nintendose a écrit :

vraiment desole, j'avais juste tilte sur le fait que seule la presence du folder genait IE :D
mille excuses  [:nintendose]


Ha oui la tu m'a vraiment vexé :o ( :lol: )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed