我对在codeigniter中压缩文件夹有一些疑问。实际上我在文件夹中有一些图像文件,我试图在codegiter中压缩此文件夹。我有查看文件,我写了“下载所有文件”按钮。单击此按钮,我必须取出文件夹并压缩它。 我的观点文件: 我在锚标记内写了“下载所有文件”按钮。
<tr>
<td align="right">
<?php if(isset($AppData) && !empty($AppData)) {
$applicantNo = $AppData[0]['appid']; ?>
<a href='<?php echo base_url("admin/downloadAllFileZip/$applicantNo");?>'><input type="submit" name="download" value="Download All Files" /></a>
<?php } ?>
</td>
</tr>
控制器代码: 在admin.php控制器文件里面我有以下方法
public function downloadAllFileZip($appId)
{
$path = file_get_contents(base_url().'files/'.$appId);
$applicant_id = $appId;
$this->zip->add_data($applicant_id,$path);
$this->zip->archive('/files/'.$applicant_id);
$this->zip->download($applicant_id);
}
但是当我点击“下载所有文件”按钮时,弹出窗口会进行压缩,并在下载其显示的1kb文件后,但该文件上没有图像。我可以将单个图像文件压缩为zip文件但不能压缩整个文件夹。请帮我解决这个问题。
答案 0 :(得分:0)
像这样添加你的所有文件。对于Ex:
foreach ($query->result() as $row)
{
$this->zip->read_file($row->filename);
}
$this->zip->download('files_backup.zip');
答案 1 :(得分:0)
要使用$this->zip->read_dir();
方法归档文件夹中的所有文件。例如,
$path = '/path/to/folder';
$this->zip->read_dir($path);
$this->zip->archive('/path/to/folder/foldername.zip');
了解更多信息。请看一下:https://www.codeigniter.com/user_guide/libraries/zip.html
答案 2 :(得分:0)
Zip库允许您创建Zip存档
$this->load->library('zip');
提供要在存档中添加的文件夹的路径
$file_name='backup['.date('d-m-Y-H:i:s').'].zip';
$this->zip->read_dir($_SERVER['DOCUMENT_ROOT']."/uploads/images",FALSE);
$this->zip->download($file_name);
我认为给出绝对路径是特定文件夹
上存档文件夹的更好方法答案 3 :(得分:0)
$this->load->library('zip');
$path = '/path/to/your_directory/';
$this->zip->read_dir($path);
$this->zip->download('my_backup.zip');