Firefox не может определить тип содержимого, установленный PHP - PullRequest
1 голос
/ 10 апреля 2010

Я хочу, чтобы страница php отображала PDF. Вот код:

<?php
  header("Content-type: application/pdf");
  readfile('Reportage - Berlin.pdf');  //tried echo(readfile(...)) as well
?>

Не очень сложно, я думаю, но каким-то образом Firefox не может обнаружить, что это PDF. Это работает в Safari, но в Firefox я получаю приглашение загрузить файл, поэтому я получаю файл pdftest.php. Я знаю, что я получаю свой файл, потому что, если я переименую расширение в pdf, я могу открыть его.

Это кажется слишком простым! я что-то упустил?

Ответы [ 2 ]

5 голосов
/ 10 апреля 2010

Если вы хотите, чтобы он открывался в браузере с помощью Adobe Reader, это также может зависеть от настроек браузера. Причина, по которой он говорит, что имя файла - pdftest.php, заключается в том, что вы не сообщаете браузеру, какое имя файла.

Если вы хотите принудительно загрузить браузер, добавьте:

header('Content-Disposition: attachment; filename="downloaded.pdf"');

4 голосов
/ 10 апреля 2010

Htbaa прав насчет того, какую строку вы должны добавить, но, поскольку Ин просит браузер , а не , чтобы загрузить файл, правильная строка будет:

header('Content-Disposition: inline; filename="downloaded.pdf"');

и, кстати, вы не хотите echo(readfile(...)), так как это добавит int, представляющий размер прочитанного файла ( php.net / readfile )

...