【问题标题】:PHP ZipArchive::open always results in an ZIPARCHIVE::ER_READ errorPHP ZipArchive::open 总是导致 ZIPARCHIVE::ER_READ 错误
【发布时间】:2012-04-11 15:44:36
【问题描述】:

我目前将大量照片存储在 LAMP 服务器上的 zip 存档中。当一个新用户被添加到我的程序中时,我打开 zip 存档并添加他们的照片。

问题是当 zip 存档接近 50MB 时,函数 ZipArchive::open 总是返回错误号 5,我相信这是这个错误 ZIPARCHIVE::ER_READ

有人知道为什么会发生这种情况吗?

非常感谢,

西奥。

【问题讨论】:

    标签: php linux zip


    【解决方案1】:

    最后我停止使用 ZipArchive 类并使用 php exec 命令在命令行上压缩文件 http://php.net/manual/en/function.exec.php

    exec('tar -cvf file.tar myfile.txt');
    

    【讨论】:

      【解决方案2】:

      尝试增加 php 的memory_limit。加载较大的 .zip 文件时,可能内存不足。

      【讨论】:

      • 您好,感谢您的快速回复。我将 memory_limit 提高到 999M 但不幸的是我仍然遇到同样的错误
      • @TheoKouzelis:出于好奇,如果您将 .zip 下载到您的计算机上,它会正确解压缩吗?
      • 是的,它可以正常下载并正常打开
      • @TheoKouzelis:在这种情况下,我唯一能找到的是php.net/manual/en/ziparchive.open.php#92559,这听起来和你遇到的完全一样。您使用的是 5.2.x 版本的 PHP 吗?
      • 是的,它在 PHP 版本 5.2.4 上运行。是的,我也看到了,我有点希望不是这样。感谢您的所有帮助
      【解决方案3】:

      同时尝试增加max_execution_time

      【讨论】:

      • 您好,感谢您的快速回复。我还将 max_execution_time 提高到 10000 但仍然是相同的错误
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      相关资源
      最近更新 更多