我的php变得有点粗糙。如果我问一些简单的话,我会事先道歉。
我将我的网站迁移到新的托管公司以及应该在客户端的网络浏览器中启动二进制(.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 Bad Gateway
服务器返回无效或不完整的回复。
我检查过,$name
变量是指服务器上非零长度的现有.zip
文件。据我所知,当我尝试输出标题时会出现问题。
奇怪的是它曾经在老托管公司工作。
知道我在这里做错了吗?