CI 框架导出文件
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); }