Я пытаюсь просмотреть PDF-файл, найденный в Интернете.
Обычно, когда я пытаюсь открыть файл PDF, Firefox отображает его в своем просмотрщике PDF по умолчанию (называется pdfjs, если я правильно помню). Это нормальное и хорошее поведение.
Однако...
с этим конкретным Pdf, который я нашел в сети, я нажимаю ссылку на его местоположение, и Firefox открывает диалоговое окно загрузки. Он описывает файл как «двоичный файл», хотя файл является Pdf, который я могу загрузить и просмотреть нативно.
Я предполагаю, что веб-сервер — это «не говорить" Firefox, что этот файл PDF на самом деле является файлом PDF. Поэтому Firefox может только предположить, что это «двоичный файл».
Это побудило меня задаться вопросом...
Если я когда-нибудь снова столкнусь с этой неприятностью, вместо того, чтобы скачать файл, могу ли ясилаFirefox открывает файл (онлайн или иным образом) в своей программе просмотра PDF по умолчанию?
Попытки решения:
- Я попробовал ответ отКак вручную вызвать встроенный в Firefox просмотрщик PDF-файлов (pdf.js)?, но безрезультатно. Firefox просто пытается загрузить «двоичный файл».
- Я добавил
view-source:
в начало местоположения PDF-файла (т. е.view-source:https://www.website.com/pdf.pdf
), я просто получаю необработанный текст ASCII, отображаемый в PDF-файле.
PS: Я использую Firefox 48.0.2...
Да, он старый....
Как просили:
решение1
Существует несколько способов, с помощью которых сайты могут заставить ваш браузер загрузить файл вместо того, чтобы открыть его напрямую:
download
Атрибут HTML
Этот атрибут тега anchor
попытается заставить ваш браузер загрузить файл вместо того, чтобы обработать его обычным способом.
Обычно это используется, когда вам нужно взять автоматически сгенерированное название документа и представить его как что-то приятное для пользователя.
Использование:<a href="http://www.website.com/path/to/YourDocument.pdf" download="YourDocument.pdf">...
Я пока не нашел способа обойти эту проблему, но поскольку настоящая причина вашей проблемы кроется ниже, я не исследовал ее полностью...
HTTP-заголовки
Content-Disposition
Веб-сервер может ответить на запрос документа заголовком, Content-Disposition
описывающим, как браузер должен получить файл.
Content-Disposition: Attachment
сообщит браузеру, что ему следует загрузить файл, а не обрабатывать его, как обычно.
Content-Disposition: Inline
сообщит браузеру, что его можно отобразить внутри веб-страницы или как веб-страницу.
Вот дополнение для Firefox, которое берет Attachment
заголовки и заменяет их Inline
заголовками:
https://addons.mozilla.org/en-US/firefox/addon/bypass-forced-download/
Технически, он перехватывает Content-Disposition: attachment
заголовки и перезаписывает их на лету в Content-Disposition: inline
. Он также позволяет вам указать веб-сайты, которые должны и не должны использовать эту перезапись.
Как и в случае с большинством дополнений, ваш пробег может отличаться.
Content-Type
Веб-сервер может ответить на запрос документа заголовком, Content-Type
описывающим тип документа, который он возвращает браузеру.
Content-Type: application/octet-stream
определяется как «произвольные двоичные данные» и, по сути, может быть загружен только как файл, в противном случае браузер не будет знать, что с ним делать.
Это то, что вы видите, когда ваш браузер запрашивает PDF-файл, который вы пытаетесь просмотреть.
Content-Type: application/pdf
это то, что вам, вероятно, понадобится, если вы захотите просмотреть этот файл в своем браузере или, по крайней мере, заставить Firefox понять, что это за файл и как с ним правильно обращаться.
Вот дополнение для Firefox, которое можно настроить на прослушивание и перезапись Content-Type
заголовков на основе их содержимого.
Примечание: Изменение способа обработки типов MIME в вашем браузере может быть опасным.
https://addons.mozilla.org/en-US/firefox/addon/content-type-fixer/
Опять же, этот аддон может работать или не работать во всех случаях.