Codeigniter Zip编码read_file不起作用

时间:2013-12-04 06:03:50

标签: php codeigniter zip

我想从现有文件制作和下载存档。我试着遵循代码。

$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'); 

我可以使用此代码。但我认为这不是最佳方式。因为我不需要将数据添加到文件中。请帮我。最好的方法是什么?


修改

突然间它是有效的。但现在第二个代码不起作用。 :(问题是什么?

2 个答案:

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