使用CodeIgniter Zip库备份目录无法正常工作

时间:2013-01-15 20:54:33

标签: php codeigniter

这是我的功能:

function backup() 
{ 
    $this->load->library('zip'); 
    $path = str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']); 
    $this->zip->read_dir($path.'/assets/');
    $this->zip->archive('backup.zip'); 
    $this->zip->download('backup.zip');
} 

当我访问该功能时,我的浏览器会暂停10-15秒,我认为这意味着正在进行存档。但是,加载完成后,除了500错误外没有任何反应。

不幸的是,我无法通过FTP直接访问此服务器,否则我会检查我的日志。不知道我的代码是不是错了?我的应用程序是在IIS7上安装的。

2 个答案:

答案 0 :(得分:1)

  

默认情况下,Zip存档将放置所有目录   zip中的第一个参数。如果你想要前面的树   要忽略的目标文件夹,您可以传递 FALSE

所以500内部服务器错误最有可能来自max_execution_time,因为您正在压缩路径中的每个目录。或者你有一个permission error。 在这两种方式中你要做的就是使用:

 $this->zip->read_dir($path.'/assets/', FALSE);

$this->zip->read_dir('assets/');

也会奏效。

我只是尝试了它并且它正在工作!

答案 1 :(得分:1)

function back_up(){ 
    $this->load->library('zip'); 
    $path = 'application/'; 
    $time = time();
    $this->zip->read_dir($path);  
    $result = $this->zip->download('backup.'.$time.'.zip'); 
    return $result;  
} 

上述功能将备份应用程序文件夹。 举个例子,尝试使用自己的文件夹。

我说英语不太好,很抱歉。