【问题标题】:download many archives for a server in one archive with php使用 php 在一个存档中为服务器下载多个存档
【发布时间】:2012-05-02 20:16:01
【问题描述】:

我需要做一个应用程序,让用户在服务器中下载大量图片,选择一些标准并且只在一个存档中。我尝试使用 web 上的 php 和 pclzip.lib 和 zipstream 库,但是这两种方法都不起作用。使用 pclzip 我只能压缩 3Mb,而在下载过程中使用 zipstream 库,它会以 25MB 大小失败。我不知道用户需要下载多少档案,但现在我有大约 700 个档案和 75MB。是否有另一种方法可以使此应用程序正常工作,或者是否有人对这个库有类似的问题并解决了它。这里有一些更多的规范:远程服务器 iis、php。谢谢,对不起我的英语

【问题讨论】:

    标签: php compression zip pclzip


    【解决方案1】:

    一段时间后我找到了使用方法

     ini_set('max_execution_time', 1200);
     ini_set("memory_limit","500M");
    

    还有图书馆ZipStream。另外,我已经更改了 PHP 服务器中的 PHP 内存限制,因为我的文件非常大。

    【讨论】:

      【解决方案2】:

      我以前用过 pclzip,这段代码可以工作:

      if ($this->extension == 'zip') {
          $this->archive = new PclZip($orgPath);
      
          if ($this->archive->extract(PCLZIP_OPT_PATH, $newPath) == 0) {
              die("Error : " . $this->archive->errorInfo(true));
          }
      }
      

      但我认为这不是你的问题。听起来好像没有足够的内存供 PHP 使用,或者没有足够的时间。

      如果这是你的问题,你可以解决它

      set_time_limit(0);   // 0 = no time limit
      ini_set('memory_limit', '300M');  // Increases memory for PHP to 300M
      

      这在 Apache 上对我有用(我不知道,但 ini_set 在你的系统上工作吗?)

      【讨论】:

      • 我正在使用这个codeini_set('max_execution_time', 300); ini_set("memory_limit","100M");在我脚本的开头。当我开始使用这个时,我看到了内存不足的消息,但现在只得到这个错误:页面无法显示,因为发生了内部服务器错误和不完整的 zip 存档。为什么?
      • error_reporting(-1); ini_set('display_errors', '1'); ini_set("display_startup_errors", true); ini_set("display_errors", true);
      • 感谢您的关注。我刚刚尝试显示所有错误但不起作用。再次出现内部服务器错误消息。
      • 您有 .htaccess 文件吗?这也可能是原因。如果出现错误,您的服务器会抛出 500 - internal server error。
      • 不,我没有使用托管服务器,所以我认为我无法访问它或者我不知道如何访问它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多