Firefox 7拒绝下载PHP返回的文件

时间:2011-10-26 09:46:51

标签: php firefox header download

升级到Firefox 7后,我无法在我的网站上下载通过PHP输出的文件。

一个例子:

假设我有链接http://example.com/download/1返回非常正常的800KB .ZIP文件,其中包含:

header("Content-Type: application/octet-stream"); 
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");    
header("Content-Disposition: attachment; filename=" .trim($filename). "");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " .filesize($filePath). ")"); 
readfile($filePath);
flush();

每个可能的浏览器,甚至是旧版本的Firefox,都会像往常一样开始下载文件。 Firefox 7引发“内容错误”。

有没有人注意到类似的行为?任何可能的解决方案?

2 个答案:

答案 0 :(得分:3)

)字段中有一个多余的content-length。这可能会破坏浏览器从下载中获得的文件大小,并导致错误。

答案 1 :(得分:0)

您似乎在)标题中有额外的Content-Length

此:

header("Content-Length: " .filesize($filePath). ")"); 

应该是

header("Content-Length: " .filesize($filePath). "");