下载生成的 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 文件时出现网络错误

pscc2018安装时出现错误代码1怎么解决?

从android下载文件时出现套接字异常

为啥我在使用 java.util.zip.ZipFile 打开空 ZIP 文件时出现异常?

解压文件时出现“错误0x80070057:参数不正确”

直接在 Internet Explorer 中打开下载时出现文件名问题