[英]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.