发送PHP头返回“502坏网关-服务器返回无效或不完整的响应。”

发送PHP头返回“502坏网关-服务器返回无效或不完整的响应。”,php,http-headers,Php,Http Headers,我的php变得有点粗糙。所以,如果我问一些简单的问题,我会提前道歉 我正在将我的网站迁移到一家新的托管公司,并使用以下脚本在客户端的web浏览器中启动二进制.zip文件下载: $handle = fopen($name, 'r'); if($handle !== false) { $length = filesize($name); header("Cache-Control: no-cache;\n"); header("Pragma: no-cache;\n");

我的php变得有点粗糙。所以,如果我问一些简单的问题,我会提前道歉

我正在将我的网站迁移到一家新的托管公司,并使用以下脚本在客户端的web浏览器中启动二进制.zip文件下载:

$handle = fopen($name, 'r');
if($handle !== false)
{
    $length = filesize($name);

    header("Cache-Control: no-cache;\n");
    header("Pragma: no-cache;\n");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT;\n");
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT;\n");
    header("Content-Type: application/octet-stream;\n");
    header("Content-Transfer-Encoding: Binary;\n");
    header("Accept-Ranges: bytes;\n");
    header("Content-Length: $length;\n");
    header("Content-Disposition: attachment; filename=\"".$file_name_and_ext_only."\";\n\n");

    fpassthru($handle);

    fclose($handle);
    exit();
}
给出了在Google Chrome中测试的以下错误:

502坏网关

服务器返回了无效或不完整的响应

我检查过,$name变量引用服务器上长度非零的现有.zip文件。据我所知,当我试图输出标题时会出现问题

奇怪的是,它曾经在旧的托管公司工作


你知道我做错了什么吗?

你能试着运行一个简单的脚本,它只响应一些东西吗?502坏网关通常意味着web服务器无法将文件传递给PHP CGI。@Svenskunganka:我尝试将echoHere放置在这里;出口在脚本中添加一行,直到我开始传递标题为止。我不是在炒作标题,而是试着逐个注释它们,看看哪一个打破了你的代码。也可能是您的主机不允许输出某些标头,或者他们的web服务器配置错误。@Svenskunganka:我的脚本中有9个标头。按照你的建议,我需要至少做512次才能确定。我试图找到一个更符合逻辑的方法来解决这个问题。不,你必须做9次。因为它在你以前的主机上工作,所以我们在这里无法真正帮助你。您应该转向他们的支持,询问为什么您的头会调用502坏网关错误。