This Might Be Useful

Отдаем pdf-файл браузеру. Да так, чтобы MSIE его тоже принимал.

Официальный пример от php.net как отдать PDF-файл браузеру выглядит так как показано ниже.

PHP:
  1. <?php
  2. // We'll be outputting a PDF
  3. header('Content-type: application/pdf');
  4.  
  5. // It will be called downloaded.pdf
  6. header('Content-Disposition: attachment; filename="downloaded.pdf"');
  7.  
  8. // The PDF source is in original.pdf
  9. readfile('original.pdf');
  10. ?>

И он работает! Но не в Internet Explorer (6 и 7). IE пишет свою обычный blah-blah Internet Explorer was unable to open this site. The requested site is either unavailable or cannot be found. Please try again later. В Microsoft kb есть заметка о похожей проблеме при использовании SSL. Но оказалось что проблема не только при передаче через SSL, но и в обычной жизни тоже. Microsoft предлагает извращенные решения типа сервис паков и копания в реестре, но можно сделать проще. Добавить к вышеперечисленным заголовкам парочку, управляющую кешем. Не знаю точно что это делает, но заработало :)

PHP:
  1. header('Cache-Control: maxage=3600');
  2. header('Pragma: public');

Заметку прислал mougly aka d1pr3d

· Добавление папок в контекстное меню Send To
· Специфический CSS для разных браузеров
· Избавляемся от самопроизвольно появляющейся Error Console в Firefox
· Распределение SQL-запросов между серверами в кластере
· Добавление сторонних сертефикатов в Internet Explorer 7

- Коментировать
- Trackback

2 Responses to “Отдаем pdf-файл браузеру. Да так, чтобы MSIE его тоже принимал.”


  1. Денис Радченко Says:

    Я обычно ограничивался
    header("Location: pdffile.pdf")

  2. Vovan Says:

    думаю header('Pragma: public'); хватит

Leave a Reply

code