PHP使用ZipArchive类种$zip->addFile()将图片添加进zip文件
第一步:实例化ZipArchive类;
第二步:定义目录,如果没有则生成一个目录;
第三步:$zip->open()打开zip文件;
第四步:遍历图片将图片写进zip文件中,使用$zip->addFile(),第一个参数必须使用物理路径,第二个参数重命名文件(可不填);
第五步:使用$zip->close()关闭zip文件
第六步:zip文件已经生成,可以直接返回zip文件的域名+路径给前端,前端拿到url跳转就可以下载
public static function zipDown(array $savefile)
{
$zip = new \ZipArchive;
$path = './temp/';
$root_path = $_SERVER['DOCUMENT_ROOT']; //根目录
$siteUrl = sys_config('site_url'); //文件绝对路径
$filename = $path.date('YmdHis', time()).'.zip';
if (!is_dir($path))
{
if ((mkdir($path, 0777, true)) === false) {
exit("目录创建失败");
}
}
$res = $zip->open($filename, \ZipArchive::OVERWRITE | \ZipArchive::CREATE);
if ($res !== TRUE)
{
exit("无法找到文件,或文件创建失败");
}
foreach ($savefile as $file)
{
$file = str_replace($siteUrl, $root_path,$file); //替换掉图片url的域名
$zip->addFile($file,basename($file));
}
$zip->close();
return $filename; //需要返回完整的域名+文件路径
}