Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter Zip库如何压缩现有文件_Php_File_Codeigniter_Zip - Fatal编程技术网

Php Codeigniter Zip库如何压缩现有文件

Php Codeigniter Zip库如何压缩现有文件,php,file,codeigniter,zip,Php,File,Codeigniter,Zip,我正在将未压缩的文件移动到服务器目录/zip/file.unzip.png 现在我需要把那个文件压缩 是否有可能做到这一点,或者需要像codeigniter指南所说的那样使用zip存档 我该怎么做 $name = 'mydata1.txt'; $data = 'A Data String!'; $this->zip->add_data($name, $data); //将zip文件写入服务器上的文件夹。将其命名为“my_backup.zip” //将文件下载到桌面。将其命名为“

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

现在我需要把那个文件压缩

是否有可能做到这一点,或者需要像codeigniter指南所说的那样使用zip存档

我该怎么做

$name = 'mydata1.txt';

$data = 'A Data String!';

$this->zip->add_data($name, $data);
//将zip文件写入服务器上的文件夹。将其命名为“my_backup.zip”

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


请阅读用户手册:

对于您的用例,有两个函数可以跳出我的视线:

$this->zip->read\u file()

允许您压缩计算机上已存在的文件 服务器。提供一个文件路径,zip类将读取并添加它 存档:

$this->zip->read\u dir()

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


您想要的是直接下载,而不是在下载之前将存档保存到磁盘上吗

如果是这种情况,您可以按照@zer02的建议执行,但删除归档步骤

$name='mydata1.txt'

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

$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缓存中的所有数据,并创建一个动态下载的文件。

hi,我不需要使用.zip存档,我的服务器上已有文件,我只需要再压缩它们,这是可能的吗?不要使用$this->zip->archive,因为这样会将存档写入磁盘。我认为OP只是想压缩现有文件并下载压缩文件,而不是先将压缩文件写入磁盘。同样,我不想使用压缩文件存档。你的问题是你想压缩文件,但现在你说你不想压缩文件。您能澄清一下您想做什么吗?ci指南中提到了一个.zip存档,用于存储所有文件,可能我的英语很差,但这正是我不需要的,我只需要在服务器上压缩没有任何zip存档的文件。zip存档与zip文件是一样的。压缩文件后,您希望发生什么?它应该作为下载提供给用户,而不是存储在服务器上吗?
$this->zip->archive('/path/to/directory/my_backup.zip'); 
$this->zip->download('my_backup.zip');