3

Here is my function:

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

When I access the function, my browser pauses for a good 10-15 seconds, which, I assume, means an archive is being made. However, nothing happens except for a 500 error when the loading is completed.

Unfortunately, I don't have direct access to this server via FTP, otherwise I'd check my logs. Any idea if perhaps my code is wrong? My app is on a IIS7 installation.

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;  
} 

This function above will backup your application folder. Just example, try with your own folder.

I speak English not well, so sorry.

于 2013-01-16T03:40:16.393 に答える