如何按照目录名称批量打包图片生成压缩包?
之前由于图片是放在服务器上,所以可以通过Zip
将图片打成压缩包然后下载,但是现在图片都放在七牛云OSS上,想知道这种情况该如何按照目录名称批量下载打成压缩包?下面是图片在服务器上的情况,这种是可以的
class ExcellentBatchExportImage extends BatchAction
{
public $name = '批量导出logo图片';
public function handle(Collection $collection)
{
// 要下载的压缩包的名称
$zip_file = 'logo.zip';
// 初始化zip类
$zip = new \ZipArchive();
$zip->open($zip_file, \ZipArchive::CREATE | \ZipArchive::OVERWRITE);
foreach ($collection as $model) {
$path = storage_path('app/public');
$dirname = $model->id.'号-'.str_replace('/', '&', $model->brand_name);
// 品牌logo
$filePath = $path.'/'.$model->brand_logo;
$basename = basename($model->brand_logo);
$zip->addFile($filePath, $dirname.'/'.$basename);
}
$zip->close();
return $this->response()->success('品牌logo图片导出成功!')->refresh();
}
}
推荐文章: