我正在 PHP 中创建一个 zip 文件供用户下载。我没有从 PHP 或检查 zipArchive 类的 GetStatusString 函数中得到任何错误。但是,如果我将一些文件放入存档中,那么当我尝试打开它时,我会收到错误“压缩的(zipped)文件夹无效或已损坏”。我已经检查了我添加的所有文件,它们都很好。我唯一能想到的是较大的文件会导致问题。但“大”文件只有大约半兆字节,而且我找不到任何有关 zipArchive 文件大小限制的文档。有什么想法可以尝试其他事情,以便我可以找到这个问题?谢谢。
Edit:我已将范围缩小到导致问题的一个特定文件。还有其他的工作也同样大或更大,所以我想放弃这个想法。以下是运行良好的文件名示例:
第627章 简.CCD.pdf
第712章
第625章 简.Labs2.pdf
是的,文件名中有空格...继承的代码问题。这是不起作用的文件名:
第623章 简.Labs.pdf
看起来这可能不是文件名问题。这最终将通过网络进行,但我正在检查它在服务器上生成的实际 zip 文件,这就是我收到错误的地方。
这是代码:
$zip = new ZipArchive();
$zfileName = $GLOBALS["localUploadRoot"] . $zfile;
$requests = $this->getRequests(true);
foreach ($requests AS $r) {
if (file_exists($GLOBALS["localInboundRequests"] . $r["file"])) {
$zip->addFile($GLOBALS["localInboundRequests"] . $r["file"], $r["file"]);
}
}
$zip->close();
Edit 2:抱歉,我无法发布该文件。里面有个人信息。
Zip 文件中的文件限制为 4 GB(未压缩文件大小),除非您使用 zip64,而 php 尚不支持 zip64。
看http://bugs.php.net/bug.php?id=51353 http://bugs.php.net/bug.php?id=51353.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)