前两天碰到一件怪事,使用header下载文件,若是是IE浏览器下载的话,下载出错,并将错误信息写入到文件里。一番调试,发现$filename =iconv("UTF-8","GB2312",$filename);在IE下载的状况下,$filename通过iconv方法处理之后返回空。后来,我机智的这么写,可能都不须要iconv方法,也能处理中文问题,没试过。 html
$filename="中文路径"; header('Content-Type: text/html; charset=utf-8'); 浏览器
iconv("UTF-8","GB2312",$filename) && $filename=iconv("UTF-8","GB2312",$filename``) header("Content-Type:text/html;charset=utf-8");缓存
header("Content-type:application/force-download"); header("Content-Type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-Length:".filesize($filename));//指定下载文件的大小 app
header('Content-Disposition:attachment;filename="'.$file.'"'); 调试
//清除缓存 htm
ob_clean(); flush(); readfile($filename); utf-8
exit();it