4

Я использую Mozilla Firefox с плагином для просмотра PDF. Плагин был правильно связан с файлами Adobe Reader для просмотра их в браузере в настройках.

Я хотел бы иметь возможность просматривать файлы PDF в Firefox, а не загружать их. Это уже работает правильно, когда веб-сервер указывает, что файл имеет Content-Type application/pdf . Однако некоторые веб-серверы предоставляют другие Content-Type для PDF-файлов, такие как application/octet-stream . (См. Этот пример PDF-файла с не-pdf Content-Type .)

Я посмотрел на файл Firefox MimeTypes.rdf, и он, похоже, поддерживает только картографические приложения, основанные на расширениях файлов, не относящихся к Интернету. (Похоже, он использует только Content-Type для сопоставления интернет-файлов.)

Как можно Firefox просматривать все документы PDF в браузере, а не только те, которые имеют тип application/pdf Content-Type?

2 ответа2

1

Вы можете использовать принудительное расширение Content-Type для файлов PDF с неправильным заголовком ответа Content-Type .

Например, если веб-сервер предоставляет Content-Type: application/octet-stream вы можете добавить правило для преобразования его в Content-Type: application/pdf на основе URL-адреса файла PDF, например:

1

Firefox не имеет кода проверки содержимого (например, команды file linux) для определения фактического типа содержимого и использования заголовка Content-Type .

Обходной путь : расширение mozplugger

Смотри man 7 mozplugger:

  extensions
          This is a comma separated list of extensions that should be associated with this particular mime type. The  exten‐
          sions are only used when a web server does not report what type of file it is, or when loading files directly from
          disk.

Обход проблемы: взаимодействие человека

Сохраните файл и откройте его в проводнике файлов ;-)

Обходной путь: неправильная конфигурация

Дополнительный обходной путь - взломать mimeTypes.rdf и присвоить application/octet-stream то же значение, что и application/pdf .

Я не советую этот обходной путь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .