Это странно.
У меня есть скрипт, который отправляет локальные zip-файлы пользователю через браузер. Скрипт работает нормально до сих пор без каких-либо проблем. Сегодня мой коллега сообщил мне, что скрипт отправляет файлы нулевой длины.
Немного справочной информации:
- Настройки сервера не были изменены до того, как скрипт дал сбой
- Протестированы разные браузеры (то же самое в Chrome/Firefox)
- Предыдущие zip-файлы (которые раньше работали нормально) также имеют нулевую длину.
- Скрипт находит файлы на сервере
- Размер файла (при отображении для отладки) правильный
- Попытка настроить параметры сервера и сценарий, как рекомендуется здесь, безуспешно.
ОБНОВЛЕНИЯ:
is_readable()
возвращает 1- размеры файлов могут варьироваться от 5 МБ до 100 МБ (не конкретно)
$zip_file
содержит путь к файлу$zip_name
содержит имя почтового индекса- файл действительно нулевой длины (открытый в текстовом редакторе, он не содержит ни одного байта)
error_reporting
этоOn
(E_ALL
) ничего не показывает- без заголовков браузер правильно отображает «источник» zip
- Safari говорит: «0 байт? не может декодировать необработанные данные' первый полезный(?) симптом
Фрагмент вопроса:
if (file_exists($zip_file)) {
header('Content-type: application/zip');
header('Content-disposition: filename="' . $zip_name . '"');
header("Content-length: " . filesize($zip_file));
readfile($zip_file);
exit();
}
Как я могу отладить это легко?
Заранее спасибо, Фабрик
is_readable()
вместоfile_exists()
. is_readable проверяет, существует ли файл и доступен ли он для чтения. - person JohnP   schedule 21.03.2011$zip_file
и$zip_name
? - person Thom Wiggers   schedule 21.03.2011if
, она печатается хорошо. Файл найден, размер правильный, но результирующий файл имеет нулевую длину. - person fabrik   schedule 21.03.2011