正在下载corrupt .zip(php)

时间:2015-07-10 13:32:05

标签: php download zip

binaryhere是我的问题 我正在使用php,我为ZipArchive库创建了一个zip存档文件。 我用我需要的所有文件完成它并将其保存在我的服务器上。 然后我想让当前用户下载,这是我写的:

if (file_exists($zip_archive))
{
    header("Pragma: no-cache");
    header("Expires: 0");
    header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=\"".$zip_archive."\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($zip_archive));
ob_end_flush();
    readfile($zip_archive);
}   

但是当我下载zip存档时,我可以看到里面的文件,但是当我尝试提取它们时,会发生错误,告诉我该文件可能已损坏。

所以我尝试打开保存在服务器上的zip存档,并且没有出现错误。

你有什么想法帮助我吗?

感谢您的帮助。

(我将fichier改为二进制,但问题仍然存在:存档结束......)

1 个答案:

答案 0 :(得分:1)

这一行:

header("Content-Transfer-Encoding: fichier");

应阅读:

header("Content-Transfer-Encoding: binary");

您可以在http://www.w3.org/Protocols/rfc1341/5_Content-Transfer-Encoding.html详细了解此标题。还有一个可用的编码类型列表,足以说' fichier'不在那里。