【问题标题】:Codeigniter Zip Library how to zip existent fileCodeigniter Zip Library如何压缩现有文件
【发布时间】:2012-10-20 14:58:11
【问题描述】:

我正在将解压缩的文件移动到服务器目录 /zip/file.unzipped.png

现在我需要获取该文件并压缩它。

是否可以这样做或需要 zip 存档作为 codeigniter 指南所说的?

我该怎么做?

【问题讨论】:

    标签: php file codeigniter zip


    【解决方案1】:

    您正在寻找的只是直接下载,而不是在下载之前将存档保存在磁盘上吗?

    如果是这种情况,您可以按照@zer02 的建议进行操作,但删除存档步骤。

    $name = 'mydata1.txt';

    $data = '一个数据字符串!';

    $this->zip->add_data($name, $data);

    // 将 zip 文件写入服务器上的文件夹。将其命名为“my_backup.zip”

    $this->zip->archive('/path/to/directory/my_backup.zip');

    // 将文件下载到您的桌面。将其命名为“my_backup.zip”

    $this->zip->download('my_backup.zip');

    zip 库应该收集您添加到内存中 zip 缓存的所有数据,并创建一个文件以动态下载。

    【讨论】:

      【解决方案2】:

      请阅读用户手册:http://codeigniter.com/user_guide/libraries/zip.html

      对于您的用例,有两个功能让我印象深刻:

      $this->zip->read_file()

      允许您压缩已存在于您的某个位置的文件 服务器。提供文件路径,zip 类将读取并添加它 到存档:

      $this->zip->read_dir()

      允许您压缩已经存在的文件夹(及其内容) 存在于您服务器的某处。提供目录的文件路径 并且 zip 类将递归读取它并将其重新创建为 Zip 档案。提供的路径中包含的所有文件都将被编码, 以及其中包含的任何子文件夹。

      【讨论】:

      • 同样的故事,我不想使用 zip 存档。
      • 你的问题说你想压缩文件,但现在你说你不想压缩文件。你能澄清一下你想做什么吗?
      • ci 指南谈到了一个 .zip 档案,用于存储所有文件,也许我的英语太差了,但那是我不需要的,我只需要在没有任何 zip 档案的情况下压缩文件服务器
      • zip 存档与 zip 文件是一样的。压缩文件后,您希望发生什么?是否应该将其作为下载提供给用户,而不是存储在服务器上?
      【解决方案3】:
      $name = 'mydata1.txt';
      
      $data = 'A Data String!';
      
      $this->zip->add_data($name, $data);
      

      // 将 zip 文件写入服务器上的文件夹。将其命名为“my_backup.zip”

      $this->zip->archive('/path/to/directory/my_backup.zip'); 
      

      // 将文件下载到您的桌面。将其命名为“my_backup.zip”

      $this->zip->download('my_backup.zip');
      

      Zip Lib CI

      【讨论】:

      • 嗨,我不需要使用 .zip 存档,我的服务器上有现有文件,我只需要压缩它们,这可能吗?
      • 不要使用 $this->zip->archive 因为这会将存档写入磁盘。我认为 OP 只想压缩现有文件并下载 zip,而不先将 zip 写入磁盘。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多