壓縮多個文件
壓縮多個文件,其實就是addFile執行多次,可以通過數組的遍歷來實現。
實現同一個目錄下將多個文件壓縮成一個zip壓縮包
封裝壓縮文件函數
//壓縮文件成zip格式
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'=>'創建失敗'];
}
}
控制器調用
/**
* 質檢單壓縮導出
* @auth true
*/
public function down_zip()
{
$arr = [
'D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\1094567064261122.png',
'D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\117745275857.png'
];
//生成壓縮文件名
$zipName = './upload/temp/'.'quality_'.time().'.zip';
//arr爲服務器文件地址路徑 D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\117745275857.png
$res = $this->login->createZipFiles($arr,$zipName);
halt($res);
return $res;
}