login  Naam:   Wachtwoord: 
Registreer je!
 Forum

download mbv headers (Opgelost)

Offline jerre - 03/07/2008 21:25
Avatar van jerreNieuw lid Hey
Ik wil een bestand downloaden met headers, en heb zelf al wat liggen knoeien, uiteindelijk heb ik dan maar eens cript van het internet gehaald, maar het lukt nog altijd niet. Het probleem is in feite redelijk simpel: als ik een doc bestand (office 2003) wil downloaden dan krijg ik wel ene bestand aan, maar dat zit dan vol rare tekens, en is helemaal overhoop gehaald (maar eigenlijk vooral rare tekens). Ik heb het ondertussen met een pdf bestand ook uitgetest, en dat is gelukt, maar het probleem is dat ik wel degelijk voor m'n site een download van doc bestandne moet kunnen aanbieden :S.

Code:
  1. <?php
  2. $file = "/home/****/domains/****.be/public_html/clo/test.doc";
  3. if (!is_file($file)) { die("<b>404 File not found!</b>"); }
  4. $len = filesize($file);
  5. $filename = basename($file);
  6. $file_extension = strtolower(substr(strrchr($filename,"."),1));
  7. switch( $file_extension ) {
  8. case "pdf": $ctype="application/pdf"; break;
  9. case "exe": $ctype="application/octet-stream"; break;
  10. case "zip": $ctype="application/zip"; break;
  11. case "doc": $ctype="application/msword"; break;
  12. case "xls": $ctype="application/vnd.ms-excel"; break;
  13. case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  14. case "gif": $ctype="image/gif"; break;
  15. case "png": $ctype="image/png"; break;
  16. case "jpeg":
  17. case "jpg": $ctype="image/jpg"; break;
  18. case "mp3": $ctype="audio/mpeg"; break;
  19. case "wav": $ctype="audio/x-wav"; break;
  20. case "mpeg":
  21. case "mpg":
  22. case "mpe": $ctype="video/mpeg"; break;
  23. case "mov": $ctype="video/quicktime"; break;
  24. case "avi": $ctype="video/x-msvideo"; break;
  25. case "php":
  26. case "htm":
  27. case "html":
  28. case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;
  29. default: $ctype="application/force-download";
  30. }
  31. header("Pragma: public");
  32. header("Expires: 0");
  33. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  34. header("Cache-Control: public");
  35. header("Content-Description: File Transfer");
  36. $header="Content-Type: ".$ctype.";";
  37. $header2="Content-Disposition: attachment; filename=".$filename.";";
  38. header($header );
  39. header($header2 );
  40. header("Content-Transfer-Encoding: base64");
  41. header("Content-Length: ".$len);
  42. @readfile($file);
  43. exit; ?>

2 antwoorden

Gesponsorde links
Offline Wim - 03/07/2008 21:46
Avatar van Wim Crew algemeen header("Content-Transfer-Encoding: base64");


probeer dat eens weg te doen...? Geen idee, maar kan werken. Zeker als je word document met === oid begint!
Offline jerre - 03/07/2008 21:54
Avatar van jerre Nieuw lid Je bent een held 

Ik had al wel zitten zoeken om dat naar binary ofzo te veranderen, maar op weglaten was ik nog niet gekomen  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.314s