Codeigniter Zip Library如何压缩现有文件

时间:2012-10-20 14:58:11

标签: php file codeigniter zip

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

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

是否有可能这样做或者需要zip存档作为codeigniter指南?

我该怎么做?

3 个答案:

答案 0 :(得分:1)

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

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

  

$ name ='mydata1.txt';

     

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

     

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

     

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

     

<德尔> $这 - &GT; zip-&GT;归档( '/路径/到/目录/ my_backup.zip');

     

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

     

$这 - &GT; zip-&GT;下载( 'my_backup.zip');

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

答案 1 :(得分:0)

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

有两个函数可以跳出我的用例:

$this->zip->read_file()

  

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

$this->zip->read_dir()

  

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

答案 2 :(得分:-1)

$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