需求:
提供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; }