Мой 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 Неверный шлюз
Сервер вернул ошибочный или неполный ответ.
Я проверил, $name
переменная относится к существующему .zip
файл на сервере ненулевой длины. Из того, что я могу сказать, проблема возникает, когда я пытаюсь вывести заголовки.
Странно то, что раньше работали в старой хостинговой компании.
Есть идеи, что я здесь делаю не так?
Задача ещё не решена.
Других решений пока нет …