簡體   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