本人是在工作中需要将阿里云oss的图片通过页面进行多选,然后生成压缩包的形式下载,由于oss不支持改功能,则使用的 ZipArchive 进行压缩下载
下面是方法:
$zipname = tempnam(__dir__.'/log', '');
$zip = new ZipArchive();
if ($zip->open($zipname, ZIPARCHIVE::CREATE) !== TRUE) {
exit ('无法打开文件,或者文件创建失败');
}
// 图片的路径,可以是多个文件
$files = [ 'YNRJZHKnMm.jpg' ];
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$fileContent = file_get_contents($file);
$file = iconv('utf-8', 'GBK', basename($file));
$zip->addFromString($file, $fileContent);
}
$zip->close();
header('Content-Type: application/zip;charset=utf8');
header('Content-disposition: attachment; filename=附件' . date('Y-m-d') . '.zip');
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
unlink($zipname);
die;
解压的功能后续加上去