//要打包的文件
foreach ($ids as $k => $v){
$img = Db::name('code')->where('code_id',$v)->value('code_img');
$fileList[]=str_replace(Config::get('app_url').'/',"",$img);//注意
}
// 存放路径和文件名
$filename = "uploads/123456.zip"; //随便起个名
// 实例化类
$zip = new \ZipArchive();
// 打开压缩包
$zip->open($filename,\ZipArchive::CREATE);
// 向压缩包中添加文件
foreach($fileList as $file){
$zip->addFile($file,basename($file));
}
// 关闭压缩包
$zip->close();
header("Cache-Control:public");
header("Content-Description: File Transfer");
header("Content-disposition: attachment; filename=".basename($filename));//文件名
header("Content-Type:application/zip"); //格式为zip
header("Content-Transfer-Encoding:binary"); //这是二进制文件
header("Content-Length:".filesize($filename)); //文件大小
@readfile($filename);
注意:图片需要为相对路径,我测试过用绝对路径是没有办法打包的!
重复打包会重复文件压缩包!
TP5自己带的插件,我使用TP5没有特别按照插件直接可以用