Header() et telechargement automatique

Header() et telechargement automatique - PHP - Programmation

Marsh Posté le 24-05-2005 à 18:28:42    

Bonjour à tous,
je tente désespéremment de mettre en place un
système de téléchargements automatique de fichiers
mais j'ai beau tout tenté je n'y arrive pas. Les fichiers
que je souhaite mettre à disposition sont des fichiers msword,
excel and co.
voila ce que je tente.

Code :
  1. $file =  "d:\\testxx\\coteplancher.DOC"; 
  2. if (file_exists($file) == true) // la condition passe tt le tps ...
  3. {
  4.     $len = filesize($file);
  5.     $fp = fopen($file, 'rb');
  6.     header("Expires: Mon, 23 Jul 2004 00:00:00 GMT" );
  7.     header("Cache-Control: no-store, no-cache, must-revalidate" );   // HTTP/1.1
  8.     header("Cache-Control: post-check=0, pre-check=0", false);
  9.     header("Pragma: no-cache" );
  10.     header("Cache-Control: private" );
  11.   //  header("Content-Transfer-Encoding: binary" );
  12.   //  header("Content-Description: File Transfer" );
  13.     header("Content-Type: application/msword" );
  14.    // header("Content-Length: ".$len);
  15.     header("Content-Disposition: attachment; filename=\"".substr(strrchr($file, "\\" ), 1)."\";" );
  16.     fpassthru($fp);
  17.     exit
  18.   }


 
j'ai égalemen tenté l'autre méthode avec l'utilisation de la fonction
readfile, j'ai également tenté d'enlever du header dans rajouter...  
mais ca ne change rien le résultat est toujours le même :
j'obtiens un fichier avec l'extension souhaitée (doc) mais ce fichier
contient les données en binaire lorsque je l'ouvre avec word...
Si quelqu'un a une idée merci beaucoup

Reply

Marsh Posté le 24-05-2005 à 18:28:42   

Reply

Marsh Posté le 24-05-2005 à 18:56:56    

Code :
  1. ob_clean();
  2. header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  3. header("content-type: application/octet-stream" );
  4. header("Content-Length: ".filesize($file));
  5. header("Content-Disposition: attachment; filename=".str_replace(" " , "_" , basename($file));
  6. flush();
  7. readfile($file);


 
en precisant dans le content-type msword ou autre ... le navigateur va essayer d'ouvrir le fichier avec l'application plutot que de telecharger le fichier

Reply

Marsh Posté le 24-05-2005 à 19:39:48    

Merci beaucoup. Effectivement le script marche mais l'erreur n'est pas liée finalement  
au content-type mais à la fonction ob_clean(); que j'avais ommise.  
Encore merci et bonne semaine


Message édité par MysticWolf le 24-05-2005 à 19:40:14
Reply

Sujets relatifs:

Leave a Replay

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