欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

下载文件--针对大多数的文件类型

程序员文章站 2022-03-24 11:36:13
...

下载文件--针对大多数的文件类型

function forceDownLoad($filename='' ,$data=''){
     if($filename==''  OR  $data==''){  return false; }
     if(FLASE === strpos($filename,'.')){
        return false;
     }
     $x = explod('.',$filename);
     $extension = end($x);
     $mimes = array('hqx'=>'application/mac-binhex40','cpt'=>'application/mac-compactpro','csv'=>'text/x-comma-separated-values','text/csv','application/csv','application/excel','application/vnd.msexcel','bin'=>'application/macbinary','dms'=>'application/octet-stream','lha'=>'application/octet-stream','lzh'=>'application/octect-stream','exe'=>array('application/octet-stream'));

if(!isset($mimes[$extension])){  $mime = 'application/octet-stream'; }
else{ $mime = (is_array($mimes[$extension]); ))?$mimes[$extension][0]: $mimes[$extension]; }

header('Content-type:"'. $mime.'"');
$tmpName = $filename;
$filename = '"''.urlencode($tmpName)."'; ////IE 中文名支持
if(strstr(strtolower($_SERVER['HTTP_USER_AGER']),'firefox') !=false){   $filename='" .$tmpName."';}  /////Firefox 中文支持
if(strstr(strtolower($_SERVER['HTTP_USER_AGER']),'chrome') !=false){   $filename='" .$tmpName."';}  /////Chrome 中文支持

header('Content-Disposition:attachment; filename='. $filename);
header('Expires:0');
header('Cache-Control: must-revalidate,post-check=0,pre-check=0');
header('Content-Transfer-Encoding:binary');
header('Pragma:no-cache');
header('Content-Length:'.strlen($data));

exit($data);
}