TP 利用ZipArchive打包下载

已在项目中使用,亲测可用。

//图片
$imgs = [
	'/Uploads/images/15744890768927.jpg',
	'/Uploads/images/15744890751973.jpg',
	'/Uploads/images/15744890573979.jpg'
];

$filename = 'download.zip'; //最终生成的文件名(含路径)
if(file_exists($filename)){
	unlink($filename);
}

//重新生成文件
$zip = new \ZipArchive();
if($zip->open($filename,\ZIPARCHIVE::CREATE)===true){
	//把图片一张一张加进去压缩
	foreach($imgs as $v){
		$file = $_SERVER['DOCUMENT_ROOT'].$v['qrcode'];
		$zip->addFile($file,pathinfo($file)['basename']); //写入第二个参数是为了防止把路径也打包进去,可不填写
	}
	
	//打包zip
	$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);
	@unlink($filename);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值