繁体   English   中英

PHP的zipArchive类的大小限制?

[英]Size limit on PHP's zipArchive class?

我正在用PHP创建一个zip文件供用户下载。 我从PHP或检查zipArchive类的GetStatusString函数没有错误。 但是,如果我将一些文件放入存档,那么当我尝试打开它时,我会收到错误“压缩(压缩)文件夹无效或已损坏”。 我已经检查了我添加的所有文件,它们都很好。 我唯一能想到的是较大的文件会导致问题。 但“大”文件只有大约半兆字节,我找不到任何有关zipArchive文件大小限制的文档。 有关其他事情的想法,所以我可以追查这个问题? 谢谢。

编辑:我已将其缩小到一个导致问题的特定文件。 有些人工作的规模大或者更大,所以我想抛弃那个想法。 以下是工作正常的文件名示例:

627 Jane.CCD.pdf
712 Example_DrNotes.pdf
625 Jane.Labs2.pdf

是的,文件名中有空格...继承的代码问题。 这是不起作用的文件名:

623 Jane.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();

编辑2:抱歉,我无法发布文件。 它有个人信息。

Zip文件中的文件限制是4千兆字节(未压缩文件大小),除非您使用zip64,这在php中尚不支持。 http://bugs.php.net/bug.php?id=51353

zip文件的限制是4GB(压缩文件)。 如果压缩文件大小将大于4GB,则无法解压缩。 所以,更好的方法来分割你的4GB的zip文件。

由于zip文件的自然文件大小限制为4GB(约3,6GB是正确的),此类将生成损坏的文件,结果大于4 GB。 使用tar.gz是一个合适的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM