今天项目当中遇到一个需要批量打包成zip文件下载在线PDF报告的功能,以下是解决方案(适用于所有的在线文件)
遇到的问题:在下载的过程中出现包由完整瞬间变为几k,打开后显示为空。
解决方案:添加下面一行代码:
ob_end_clean();//清空(擦除)缓冲区并关闭输出缓冲
解决问题。
yuan
function Downpdf($files,$filename){
$filename = $filename.".zip";
$zip = new \ZipArchive;//运用类中需要带"\"
$zip->open($filename, \ZipArchive::CREATE);//运用类中需要带"\"
foreach ($files as $file) {
$fileContent = file_get_contents($file);//获取文件内容
if($fileContent){
$zip->addFromString(basename($file), $fileContent);
}
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$filename);
header('Content-Length: ' . filesize($filename));
ob_end_clean();//清空(擦除)缓冲区并关闭输出缓冲
readfile($filename);
}
PHP批量下载在线文件
最新推荐文章于 2024-05-24 11:36:37 发布