PHP上的大小限制';什么是zipArchive类?
我正在用PHP创建一个zip文件供用户下载。我没有从PHP或检查zipArchive类的GetStatusString函数中得到任何错误。但是,如果我将一些文件放入归档文件中,那么当我尝试打开它时,会出现错误“压缩(压缩)文件夹无效或已损坏”。我已经检查了我添加的所有文件,它们都很好。我唯一能想到的是,较大的文件会导致问题。但是“大”文件只有大约半兆字节,我找不到任何关于zipArchive文件大小限制的文档。有没有其他想法可以尝试,这样我就可以追踪这个问题?谢谢 编辑: 我已经把它缩小到一个引起麻烦的特定文件。还有其他人的工作,是一样大或更大,所以我想扔掉这个想法。以下是工作正常的文件名示例: 627 Jane.CCD.pdfPHP上的大小限制';什么是zipArchive类?,php,zip,ziparchive,Php,Zip,Ziparchive,我正在用PHP创建一个zip文件供用户下载。我没有从PHP或检查zipArchive类的GetStatusString函数中得到任何错误。但是,如果我将一些文件放入归档文件中,那么当我尝试打开它时,会出现错误“压缩(压缩)文件夹无效或已损坏”。我已经检查了我添加的所有文件,它们都很好。我唯一能想到的是,较大的文件会导致问题。但是“大”文件只有大约半兆字节,我找不到任何关于zipArchive文件大小限制的文档。有没有其他想法可以尝试,这样我就可以追踪这个问题?谢谢 编辑: 我已经把它缩小到一个引
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压缩)你能把那个文件放在某个地方让我们看看我们能不能压缩它吗?老兄,你刚刚救了我的命!