下载生成的 zip 时出现 ERR_EMPTY_RESPONSE
Posted
技术标签:
【中文标题】下载生成的 zip 时出现 ERR_EMPTY_RESPONSE【英文标题】:ERR_EMPTY_RESPONSE on downloading generated zip 【发布时间】:2022-01-17 13:54:42 【问题描述】:所以我试图生成一个包含一堆 pdf 的 zip 文件。
一段时间后我让它工作了,但问题服务器给了我 ERR_EMPTY_RESPONSE。
服务器的 apache 在 windows server 2003 上是 2.2... php 版本为 5.2。这是代码:
<?php
$file_names=$pdfs; //This is an array of names of files in PDF format: 1.pdf, 2pdf, 3pdf...
$zip = new ZipArchive;
$zip_name = ("test.zip");
$path_zip = ("C:/www/test/docs/");
$zip->open($path_zip.$zip_name,ZipArchive::CREATE);
foreach ($file_names as $file)
$zip->addFile($file,basename($file));
$zip->close();
//then send the headers to force download the zip file
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$zip_name");
header("Pragma: no-cache");
header("Expires: 0");
@readfile($path_zip.$zip_name);
exit;
?>
PDF 之前是从互联网上下载的,带有其他代码
我该如何解决这个问题??
编辑::
添加显示 zip 的图像。
编辑 2:: 我在最后一行删除了@ 并进行了测试。没有按预期工作。
【问题讨论】:
为什么readfile
之前还有一个@
。停止抑制错误,同时尝试查找错误。
哎呀没有检查...我现在正在测试..
这不会改变任何事情。无论如何都会给出同样的错误。
【参考方案1】:
所以...
它很丑,但它有效......
我只是变了
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$zip_name");
header("Pragma: no-cache");
header("Expires: 0");
readfile($path_zip.$zip_name);
exit;
为
header("Location: ".$path_zip.$zip_name);
正如我所说,它非常难看,但它确实有效,它使用户下载文件并且它不会卡住或类似的东西。
如果有人想再做一个真正的修复,我会测试它,因为我不想更改位置。
再见。
【讨论】:
以上是关于下载生成的 zip 时出现 ERR_EMPTY_RESPONSE的主要内容,如果未能解决你的问题,请参考以下文章
失败 - 在 chrome 中获取 Zip 文件时出现网络错误