-
-
-
-
-
-
* 此处的basename是其真实的文件名;如果不用它,你的文件会被包含在诸如:./var/www/upload 目录下 很难找;同时打包后的压缩文件 必须重新命名(在header中操作);否则就只能呵呵了,暴露根目录...
-
-
-
function create_zip($files = array(),$destination = '',$overwrite = false) {
-
-
-
if(file_exists($destination) && !$overwrite) { return false; }
-
-
$valid_files = array();
-
-
-
if(is_array($files)) {
-
-
foreach($files as $file) {
-
-
if(file_exists($file)) {
-
$valid_files[] = $file;
-
}
-
}
-
}
-
-
-
if(count($valid_files)) {
-
-
$zip = new ZipArchive();
-
-
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
-
return false;
-
}
-
-
-
foreach($valid_files as $file) {
-
$file_info_arr= pathinfo($file);
-
$filename =$file_info_arr['basename'];
-
$zip->addFile($file,$filename);
-
}
-
-
-
-
-
$zip->close();
-
-
-
return file_exists($destination);
-
}else{
-
-
return false;
-
}
-
}
-
原函数中:
-
foreach($valid_files as $file) {
-
$zip->addFile($file,$file);
-
}
-
此处经过测试存在bug,压缩后的zip中包含了zip所在的目录结构,所以修改成:
-
-
foreach($valid_files as $file) {
-
$file_info_arr= pathinfo($file);
-
$filename =$file_info_arr['basename'];
-
$zip->addFile($file,$filename);
-
}
posted @
2014-11-20 09:45
SunsCheung
阅读(
488)
评论()
编辑
收藏
举报