Nieuw 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:
<?php
$file = "/home/****/domains/****.be/public_html/clo/test.doc";
if (!is_file($file)) { die("<b>404 File not found!</b>"); }
$len = filesize($file);
$filename = basename($file);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch( $file_extension ) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "mp3": $ctype="audio/mpeg"; break;
case "wav": $ctype="audio/x-wav"; break;
case "mpeg":
case "mpg":
case "mpe": $ctype="video/mpeg"; break;
case "mov": $ctype="video/quicktime"; break;
case "avi": $ctype="video/x-msvideo"; break;
case "php":
case "htm":
case "html":
case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;
default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
$header="Content-Type: ".$ctype.";";
$header2="Content-Disposition: attachment; filename=".$filename.";";
header($header );
header($header2 );
header("Content-Transfer-Encoding: base64");
header("Content-Length: ".$len);
@readfile($file);
exit; ?>
<?php $file = "/home/****/domains/****.be/public_html/clo/test.doc"; if (!is_file($file)) { die("<b>404 File not found!</b>"); } switch( $file_extension ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; case "mp3": $ctype="audio/mpeg"; break; case "wav": $ctype="audio/x-wav"; break; case "mpeg": case "mpg": case "mpe": $ctype="video/mpeg"; break; case "mov": $ctype="video/quicktime"; break; case "avi": $ctype="video/x-msvideo"; break; case "php": case "htm": case "html": case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break; default: $ctype="application/force-download"; } header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); $header="Content-Type: ".$ctype.";"; $header2="Content-Disposition: attachment; filename=".$filename.";"; header("Content-Transfer-Encoding: base64"); header("Content-Length: ".$len);
|