我有一个小脚本,它设置标题以强制下载 zip 文件:
if(ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
header("Pragma: public");
header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.$mp3.'"');
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".@filesize($file));
@readfile($file) OR die("<html>...</html>");
exit;
在 Chrome 和 Firefox 中一切正常,但在 IE 9 中失败。我在谷歌搜索后尝试了许多不同的方法来设置这些标题,但没有任何帮助。然后我尝试了一个不同的较小的 zip 文件,它成功了!然后我尝试了一个更大的 zip 文件并再次失败。这会是服务器或 php.ini 上的一些设置吗?为什么它只影响IE?
当它在 IE 中失败时,它看起来像是在下载.. 说已完成。但是文件是0字节。
谢谢你的帮助!