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改为二进制,但问题仍然存在:存档结束......)
答案 0 :(得分:1)
这一行:
header("Content-Transfer-Encoding: fichier");
应阅读:
header("Content-Transfer-Encoding: binary");
您可以在http://www.w3.org/Protocols/rfc1341/5_Content-Transfer-Encoding.html详细了解此标题。还有一个可用的编码类型列表,足以说' fichier'不在那里。