php打包生成zip文件并下载
ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启。
$filename = date ( ‘YmdHis’ ) . “.zip”; //最终生成的文件名(含路径)
if(!file_exists($filename)){
//重新生成文件
$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit(‘无法打开文件,或者文件创建失败’);
}
foreach( $fileNameArr as $key => $val){
//fileNameArr是需要打包的文件数组
$names = $key +1;
if(file_exists($val)){
$zip->addFile($val,basename($names.’.zip’));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
//addFile 的文件必须得找到,需要用到dirname(__FILE__)来找路径
}
}
$zip->close();//关闭
}
if(!file_exists($filename)){
exit(“无法找到文件”); //即使创建,仍有可能失败。。。。
}
header(“Cache-Control: public”);
header(“Content-Description: File Transfer”);
header(‘Content-disposition: attachment; filename=’.basename($filename)); //文件名
header(“Content-Type: application/zip”); //zip格式的
header(“Content-Transfer-Encoding: binary”); //告诉浏览器,这是二进制文件
header(‘Content-Length: ‘. filesize($filename)); //告诉浏览器,文件大小
@readfile($filename);
标签:PHP