При создании PDF в браузере программным способом (через PHP) отображаемый PDF отлично отображается как в Firefox, так и в Safari, но Chrome возвращает ERR_INVALID_RESPONSE. Это действительный PDF - его можно открыть локально с помощью Adobe Reader/Preview после сохранения из рабочих браузеров, и даже открыть в Chrome после сохранения PDF из другого браузера.
Файл PDF читается через file_get_contents()
, получает текущую метку времени и затем передается в браузер. Обходной путь может включать сохранение файла во временную область и перенаправление пользователя (по крайней мере, для Chrome), но это не идеально.
Я исследовал это и смог найти только сообщения об ошибках, начиная с 2008 года.
У меня есть подозрение, что это ошибка заголовка. После того, как PDF сгенерирован, в браузер отправляются следующие заголовки (снова хорошо работает в FF, Safari и IE):
header('Content-type:application/pdf');
header("HTTP/1.1 200 OK");
Я также попытался добавить следующие заголовки после поиска в переполнении стека, но безрезультатно:
header("Content-Transfer-Encoding: binary");
header('Accept-Ranges: bytes');
Есть ли недостающие заголовки, которые требуются в Chrome? У кого-нибудь есть опыт работы с динамически генерируемыми PDF файлами для отображения в Chrome?
РЕДАКТИРОВАТЬ: Один из моих наиболее важных вопросов заключается в том, что может быть причиной того, что это работает нормально локально в Chrome, но не будет работать в серверной среде.