php实现文件下载,在IE8下面没有问题,但是IE7下面不行,总是提示文件不存在,在谷歌浏览器下也是不能下载,请问会是什么原因导致的。
if (file_exists ( $file_dir . $file_name )){
$file = fopen ( $file_dir . $file_name, "rb" );
header ( "Cache-Control:public,must-revalidate" );
header ( "Pragma: public" );
header ( "Expires: 0" );
Header ( "Content-type: application/octet-stream;charset=UTF-8" );
Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) );
Header ( "Content-Length: " . filesize ( $file_dir . $file_name ) );
Header ( "Content-Disposition: attachment; filename=" . $file_name );
echo fread ( $file, filesize ( $file_dir . $file_name ) );
fclose ( $file );
exit ();
}

解决方案 »

  1.   


    检查一下文件名是否包含中文,如果是的话,很可能会产生乱码,从而导致下载失败,建议使用UTF-8对文件名进行转码,最好不要以中文名进行保存,像CSDN的下载系统用的就是UTF-8文件名,虽然无法直接查看到中文,但是能比较好地兼容
      

  2.   

    php有时就存在浏览器不同会有不同的结果,我有一次也是,同一个php文件在ie下不行,换火狐又可以了,很纠结啊
      

  3.   

          
    header("Content-type: text/plain"); //纯文本格式
    header("Content-Disposition: attachment; filename=NewcardDump_".date("Ymd").".txt");
    就只加这两个参数试试