如何在codeigniter中将文件夹转换为Zip文件,其中文件夹包含一些图像文件

时间:2017-06-08 05:48:14

标签: codeigniter

我对在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文件但不能压缩整个文件夹。请帮我解决这个问题。

4 个答案:

答案 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');