php如何批量打包下载远程、本地多文件
直接上后台代码,前端就放一个iframe,默认隐藏,点击下载按钮,动态的改变iframe 地址就可以了,也可以自由发挥
header("Content-type: text/html; charset=utf-8");
$fileArr = [];
$fileArr[0] = ['file_path' => './public/banner.jpg'];
$fileArr[1] = ['file_path' => 'https://www.xxxx.com/public/banner.jpg'];
//要使用该类,需要先启用 extension=php_zip.dll
$zip = new \ZipArchive ();
//php内置的压缩类
$res = $zip->open($tmpFile, \ZipArchive::CREATE);
if ($res === TRUE) {
foreach ($fileArr as $val) {
//远程文件需要curl 一下
$file = iconv("utf-8", "gb2312", $val['file_path']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, $file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$fileContent = curl_exec($ch);
curl_close($ch);
//本地的你可以直接写路径$zip->addFromString($val['file_path'], basename($val['file_path']));
$zip->addFromString(basename($file), $fileContent); //将文件循环压缩到压缩包
}
}
$zip->close();
header('Content-Type: application/zip');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=" . date('YmdHis') . ".zip");
header('Content-Length: ' . filesize($tmpFile));
ob_end_clean();
readfile($tmpFile);
unlink($tmpFile);
以上这篇php如何批量打包下载远程、本地多文件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持后浪云。
版权声明:
作者:后浪云
链接:https://www.idc.net/help/11568/
文章版权归作者所有,未经允许请勿转载。
THE END