PHP zip文件下载最初返回空zip,随后工作

时间:2016-09-21 16:30:11

标签: php download zip

这是用户点击“下载”时运行的php代码。基本上我将一堆文件添加到zip文件,然后配置标头然后调用readfile。然后我尝试使用'unlink'删除文件失败。因此,在第一次单击下载后,zip文件将保留在文件夹中。出于某种原因,第一次单击时返回一个空的zip文件,然后在每次后续单击时返回正确的zip文件(直到我手动输入zip文件)。因此,当zip文件开始时,它似乎只能正常工作。

ignore_user_abort(true);

$path_parts = pathinfo($site_root.$data->name);
$proj_path = $site_root.$path_parts['basename'];

$zip = new ZipArchive();
$filename = $data->name.".zip";
$zip->open($site_root.$filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);

$files = preg_grep('/^([^.])/', scandir($proj_path));

foreach ($files as $f) {
    $zip->addfile($proj_path."/".$f, $data->name."/".$f);
}

$zip->close;



header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($site_root.$filename));
ob_end_flush();
readfile($site_root.$filename);

unlink($site_root.$filename);

是否有某些原因导致您无法压缩文件并立即阅读?它是否需要拉链接近几秒才能完成它的结束?

0 个答案:

没有答案