3

这是我的功能:

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 上。

4

2 回答 2

1

默认情况下,Zip 存档会将第一个参数中列出的所有目录放在 zip 中。如果您希望忽略目标文件夹之前的树,您可以通过FALSE

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

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

或者:

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

也会起作用。

我刚刚尝试过,它正在工作!

于 2013-01-15T22:39:43.647 回答
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;  
} 

上面的这个功能将备份您的应用程序文件夹。举个例子,试试你自己的文件夹。

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

于 2013-01-16T03:40:16.393 回答