Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP上的大小限制';什么是zipArchive类?_Php_Zip_Ziparchive - Fatal编程技术网

PHP上的大小限制';什么是zipArchive类?

PHP上的大小限制';什么是zipArchive类?,php,zip,ziparchive,Php,Zip,Ziparchive,我正在用PHP创建一个zip文件供用户下载。我没有从PHP或检查zipArchive类的GetStatusString函数中得到任何错误。但是,如果我将一些文件放入归档文件中,那么当我尝试打开它时,会出现错误“压缩(压缩)文件夹无效或已损坏”。我已经检查了我添加的所有文件,它们都很好。我唯一能想到的是,较大的文件会导致问题。但是“大”文件只有大约半兆字节,我找不到任何关于zipArchive文件大小限制的文档。有没有其他想法可以尝试,这样我就可以追踪这个问题?谢谢 编辑: 我已经把它缩小到一个引

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

编辑: 我已经把它缩小到一个引起麻烦的特定文件。还有其他人的工作,是一样大或更大,所以我想扔掉这个想法。以下是工作正常的文件名示例:

627 Jane.CCD.pdf
712示例\u DrNotes.pdf
625 Jane.Labs2.pdf

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

623 Jane.Labs.pdf

似乎不是文件名问题。这最终将通过web实现,但我正在检查它在服务器上生成的实际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文件中的文件限制为4G字节(未压缩文件大小),除非您使用zip64,这在php中尚不受支持。
请参阅。

zip文件的限制为4GB(压缩文件)。如果压缩文件大小大于4GB,则无法解压缩。因此,更好的方法是将zip文件拆分为4GB。

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

也许您应该在构建zip文件的地方发布代码的相关端口。当然,500K文件并没有造成麻烦。创建过程真的完成了吗?你能展示一些你正在添加的文件的代码和示例文件名吗?它们没有使用特殊字符的名称?CLI或web?您是先将它们保存到磁盘,还是直接将它们“流”到客户端。(如果是后者,确保你没有任何zlib压缩)你能把那个文件放在某个地方让我们看看我们能不能压缩它吗?老兄,你刚刚救了我的命!