我想从现有文件制作和下载存档。我试着遵循代码。
$this->zip->read_file('/upload/ut/10_33_statement.xls', true);
$this->zip->download('my_backup.zip');
但是这段代码不起作用。但是,当我使用以下代码时,它正在工作。
$this->zip->add_data('/upload/ut/10_33_statement.xls', '');
$this->zip->download('my_backup.zip');
我可以使用此代码。但我认为这不是最佳方式。因为我不需要将数据添加到文件中。请帮我。最好的方法是什么?
修改
突然间它是有效的。但现在第二个代码不起作用。 :(问题是什么?
答案 0 :(得分:1)
CodeIgniter zip库已损坏,不再维护该框架。 read_file()不能很好地工作。使用add_data()。
add_data()需要两个参数:
$ this-> zip-> add_data($ fileName,$ dataToAddInTheFile);
在实践中,这将是:
$this->zip->add_data('my_spreadsheet.xls', '/upload/ut/10_33_statement.xls');
$this->zip->download('my_spreadsheet.zip');
答案 1 :(得分:0)
试试这个..它对我有用
public function downloadall(){
$createdzipname = 'myzipfilename';
$this->load->library('zip');
$this->load->helper('download');
$cours_id = $this->input->post('todownloadall');
$files = $this->model_travaux->getByID($cours_id);
// create new folder
$this->zip->add_dir('zipfolder');
foreach ($files as $file) {
$paths = 'http://localhost/uploads/'.$file->file_name.'.docx';
// add data own data into the folder created
$this->zip->add_data('zipfolder/'.$paths,file_get_contents($paths));
}
$this->zip->download($createdzipname.'.zip');
}