需求:
提供N个文件的路径,将文件打包压缩成zip文件
解决:
无需要下载任何插件。测试环境本地Ngnix和西部数码主机均可。
代码:
访问down_zip方法,需要注意需要打包的文件,也就是$arr数组中的路径需要物理路径,比如:E:\phpstudy_pro\WWW\www.winter.com\public\upload。
请不要根据tp6路径来设置。
public function createZipFiles($pathArr,$zipName){
$zip = new \ZipArchive();
if($zip->open($zipName,\ZipArchive::CREATE|\ZipArchive::OVERWRITE)){
foreach($pathArr as $file){
if(!file_exists($file)){
continue;
}
$zip->addFile($file,basename($file)); //向压缩包中添加文件
}
$zip->close();
return ['code'=>1,'info'=>"创建成功",'path'=>$zipName];
}else{
return ['code'=>0,'info'=>'创建失败'];
}
}
public function down_zip()
{
$arr = [
'/home/yujuzgpyzuwjluszng/wwwroot/public/index.jpg',
];
//生成压缩文件名
$zipName = './upload/'.'quality_'.time().'.zip';
//arr为服务器文件地址路径 D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\117745275857.png
$res = $this->createZipFiles($arr,$zipName);
halt($res);
return $res;
}