Проблемы с header () при отображении PDF-файла в IE8 - PullRequest
8 голосов
/ 07 августа 2009

Итак, у меня есть файл, который отправляет следующее:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: private");
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=file.pdf");
header("Content-length: 7735");

затем я выводю файл - это файл PDF.

Отлично работает в IE6 & 7 на XP (и FF в этом отношении) Тот же код ничего не показывает при работе на IE8 на XP или Vista. Предупреждений по безопасности нет и т. Д., Поэтому я не думаю, что это связано с этим.

И, если память мне не изменяет, некоторое время назад это работало на IE8.

Что я здесь не так делаю? Я что-то упускаю из заголовков?

Можно ли мне посмотреть, какая информация заголовка появляется при просмотре PDF в IE8, и я знаю, что имитировать?

После просмотра вещей, он все еще работает в IE8, ЗА ИСКЛЮЧЕНИЕМ SSL,

Ответы [ 6 ]

18 голосов
/ 15 июня 2011

Под HTTPS и IE8 эти заголовки решают проблему загрузки:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: public");

Другие заголовки X-что-то не имели значения.

2 голосов
/ 11 ноября 2011

Вероятно, это связано с SSL. Я прочитал эту статью (на немецком языке, с примерами кода), где автор установил следующий заголовок:

header('Pragma: anytextexeptno-cache', true);
1 голос
/ 04 ноября 2010

Что-то, что я хочу добавить, так как я столкнулся с этой проблемой тоже немного по-другому, используя Joomla.

Обычный PDF-вывод контента работал нормально, во всех браузерах.

Но генерация pdf из моего собственного компонента (используя JDocument, tho) привела к тому, что вы упомянули выше.

Мое решение: явно включить кэширование для моего компонента, используя следующую инструкцию в view.html.php:

JResponse::allowCache(true); 

Может быть, это кому-нибудь поможет.

1 голос
/ 07 августа 2009

Я не уверен, что нужно, но вот что вы могли бы сделать. Поместите файл временно в публичное место на вашем сервере, сделайте так, чтобы его можно было скачать по прямой ссылке в IE8, используйте заголовки firefox LiveHTTP или аналогичные, чтобы получить все заголовки, отправленные сервером. Выкладывайте их точно так же и в порядке в вашем сценарии. (И не забудьте удалить файл).

0 голосов
/ 21 июня 2010
0 голосов
/ 15 сентября 2009

Я использую HTTPS, и у меня были некоторые проблемы, но при использовании этих заголовков загрузка делалась. Попытайся.

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: public"); 
header("X-Download-Options: noopen "); // For IE8
header("X-Content-Type-Options: nosniff"); // For IE8
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=file.pdf");
header("Content-length: 7735");

Проблема в том, что вы не можете открыть напрямую. Просто сохраните.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...