function addFileToZip($dir, $name='')
{
//进行多个文件压缩
$zip = new \ZipArchive();
$fileNameArr = foreach_dir($dir);
if (count($fileNameArr) > 1) {
$rio_filename = 'total.zip';
if($name) {
$rio_filename = $name;
}
} else {
//单文件导出
$houzhui = substr(strrchr($fileNameArr[0], '.'), 1);
$rio_filename = basename($fileNameArr[0],".".$houzhui).".zip";
}
$filename = iconv("utf-8", "GB2312", $rio_filename);
$zip->open($dir .$filename, \ZipArchive::CREATE); //打开压缩包
foreach ($fileNameArr as $file) {
$res = $zip->addFile($dir .iconv("utf-8","GB2312",$file), iconv("utf-8","GB2312",$file)); //向压缩包中添加文件
}
$zip->close(); //关闭压缩包
foreach ($fileNameArr as $file) {
unlink($dir .iconv("utf-8","GB2312",$file));
}
//输出压缩文件提供下载
header("Cache-Control: max-age=0");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename=' . basename($dir. $rio_filename)); // 文件名
header("Content-Type: application/zip"); // zip格式的
header("Content-Transfer-Encoding: binary"); //
header('Content-Length: ' . filesize($dir .$filename)); //
@readfile($dir .$filename);//输出文件;
unlink($dir. $filename); //删除压缩包临时文件
}