daGrevis Posted July 29, 2009 Report Share Posted July 29, 2009 Es izmantoju martins256 SMS Shop'a skriptu, un rodas problēmas, kad fails tiek lejupielādēts. Tas nevis tiek lejupielādēts, bet gan atverts kā teksts (pat ja tas ir, piemēram, attēls) caur pārlūkprogrammu... :( Idejas? function dl_file($file){ //First, see if the file exists if (!is_file($file)) { die("<b>404 File not found!</b>"); } //Gather relevent info about file $len = filesize($file); $filename = basename($file); $file_extension = strtolower(substr(strrchr($filename,"."),1)); //This will set the Content-Type to the appropriate setting for the file 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; //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files) case "php": case "htm": case "html": case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break; default: $ctype="application/force-download"; } //Begin writing headers 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"); //Use the switch-generated Content-Type header("Content-Type: $ctype"); //Force the download $header="Content-Disposition: attachment; filename=".$filename.";"; header($header ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$len); @readfile($file); exit; } Quote Link to comment Share on other sites More sharing options...
waplet Posted July 29, 2009 Report Share Posted July 29, 2009 header("Content-Type: $ctype"); šeit nebūš vaina? header("Content-Type:" .$ctype); Quote Link to comment Share on other sites More sharing options...
marcis Posted July 29, 2009 Report Share Posted July 29, 2009 Nea, tur gan nebūs vaina, sintakse atļaut rakstīt abus variantus. Drīzāk vajadzētu apskatīties vai header'i tiešām tiek brouzerim nosūtīti. Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted July 29, 2009 Report Share Posted July 29, 2009 pameigini nonjemt header("Content-Transfer-Encoding: binary"); Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.