即使声称成功,IE下载也不完整

时间:2012-01-24 19:44:26

标签: php download

我正在为我的客户提供一个压缩文件供下载,它可以在除IE之外的每个操作系统/浏览器中使用。

压缩文件为550 MB。当我使用IE 8时,文件下载50 - 70 MB,然后声称即使原始文件是550 MB,下载也已完成。

我想知道我是否遗漏了一些必需的标题或其他内容。这是我用来提供文件的PHP代码。

<?php
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$dnfilename");
header("Content-Length: ".filesize($ZIPFILE));
header("Pragma: no-cache");
header("Expires: 0");
readfile("$ZIPFILE");   
?>

2 个答案:

答案 0 :(得分:0)

我不知道这是否有帮助,但以下适用于IE8 - 9,Chrome和Firefox使用1.5GB压缩文件。

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$dnfilename."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($ZIPFILE));
readfile($ZIPFILE);

看一下这篇文章:HTTP Headers for ZIP File Downloads

答案 1 :(得分:0)

我在IE7和IE8中遇到了同样的问题。 IE9和其他浏览器工作正常。如果您更改了Content-Type标题,则可以正常工作。

更改

header("Content-type: application/zip");

header("Content-type: application/octet-stream");