CI框架目錄結構:
|-application (應用目錄) |-system (核心目錄) |-downexcel (文件存在目錄) |-ZipBackDir (備份目錄) |-index.php (入口文件)
$zip=new ZipArchive(); //生成壓縮後文件名 $ZipBackDir = "ZipBackDir/1.zip"; if($zip->open($ZipBackDir, ZipArchive::CREATE)=== TRUE){ $this->addFileToZip("downexcel/".time(), $zip); $zip->close(); }else{ echo "讀取失敗~"; } /*header ( "Cache-Control: max-age=0" ); header ( "Content-Description: File Transfer" ); header ( 'Content-disposition: attachment; filename=' . basename ($ZipBackDir ) ); // 文件名 header ( "Content-Type: application/zip" ); // zip格式的 header ( "Content-Transfer-Encoding: binary" ); // 告訴瀏覽器,這是二進制文件 header ( 'Content-Length: ' . filesize ( $ZipBackDir ) ); // 告訴瀏覽器,文件大小 @readfile ( $ZipBackDir );//輸出文件;*/ } function addFileToZip($path,$zip){ $handler=opendir($path); //打開當前文件夾由$path指定。 while(($filename=readdir($handler))!==false){ if($filename != "." && $filename != ".."){//文件夾文件名字爲'.'和‘..’,不要對他們進行操做 if(is_dir($path."/".$filename)){// 若是讀取的某個對象是文件夾,則遞歸 $this->addFileToZip($path."/".$filename, $zip); }else{ //將文件加入zip對象 $zip->addFile($path."/".$filename); } } } @closedir($path); }