<p>pdf.js полагается на URL-адреса, чтобы содержать расширение pdf</p>

Созданный на 12 февр. 2014  ·  13Комментарии  ·  Источник: mozilla/pdf.js

Когда сервер не предоставляет заголовок Content-Disposition, pdf.js полагается на URL-адреса, чтобы содержать расширение pdf. Но URL-адреса - это локаторы, а не имена.
Действия по воспроизведению:

mv web/compressed.tracemonkey-pldi-09.pdf web/compressed.tracemonkey-pldi-09
sed -i 's/compressed.tracemonkey-pldi-09.pdf/compressed.tracemonkey-pldi-09/g' web/viewer.js
firefox web/viewer.html

Теперь нажмите на загрузку. Вам будет предложен файл «document.pdf». Имя должно быть более значимым.
Ошибка также возникает, когда я не использую расширение pdf на моем веб-сервере apache.

Предложенное решение:
Используйте заголовок PDF-файла. (как этот код viewer.js ). Заголовок также используется firefox для функции «Файл -> сохранить страницу как» при отображении HTML-страницы, например http://en.wikipedia.org/wiki/Internet_media_type .

Не каждая веб-страница html заканчивается на .html. Вместо расширения тип документа определяется его MIME-типом.
Однако большинство файлов pdf имеют расширение pdf, и большинство онлайн-файлов pdf также имеют в URL-адресах название, пригодное для хранения.
Я не знаю, должен ли новый метод поиска перезаписывать получение URL-адреса или быть запасным вариантом.

См. Также №3455.

1-core 5-good-beginner-bug

Все 13 Комментарий

@timvandermeij

Есть новости по этому поводу? Он работает уже более двух лет. Поскольку мой параметр файла - это вызов сервера, который отправляет файл pdf обратно, программа просмотра pdf не может определить имя файла, потому что, похоже, ищет расширение .pdf, и поэтому я застрял с "document.pdf" "при загрузке" и "untitled.pdf" в строке окна при просмотре.

Было бы удобно, если бы мы могли также указать «заголовок» в URI, а также «файл», например ... / pdf-viewer / viewer.html? File = "..." & title = "... "

Я знаю, что в настоящее время ведется работа над # 7554 для поддержки заголовка Content-Disposition , что является способом решения этой проблемы. Однако я согласен с тем, что document.pdf - не лучшее возможное имя, и нам может потребоваться улучшить функцию получения имени (файла). Патчи для этого приветствуются, поэтому я называю это ошибкой для начинающих, так как ее не должно быть слишком сложно реализовать.

@timvandermeij Отлично, спасибо, я считаю, что поддержка Content-Disposition действительно решит мою проблему.

Я согласен, просматривая код, я заметил, что не должно быть слишком сложно просто добавить еще один параметр URL-адреса для имени файла. Я попробую в ближайшие несколько дней, спасибо.

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

@timvandermeij Пожалуйста, помните, что в PR # 4956 мы намеренно
Следовательно, я не думаю, что мы должны позволять указывать title с помощью хеш-параметра!

Особенно с учетом того, что это было бы нестандартно (в контексте http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf) и по сравнению с Content-Disposition подход в PR # 7554, действительно не добавляет большого значения.

Извините, я должен был быть более ясным. Я имел в виду, что патчи приветствуются для улучшения функции определения имени файла по URL. Я думаю, что мы можем добиться большего здесь, вместо того, чтобы полагаться только на расширение файла. Я согласен с тем, что нам не следует добавлять дополнительные параметры хеширования.

Каков статус этой проблемы? Это все еще открыто?

Каков статус этой проблемы? Это все еще открыто?

@anirudhrb все еще открыт, была попытка реализовать это на # 7554, не хотели бы вы внести свой вклад в это?

@yurydelendik Да, я хотел бы внести свой вклад. Что ожидается от PR по этому выпуску?

@anirudhrb , вы можете просто взять вышеупомянутый PR в качестве основы, поскольку он несколько правильно использует удаленное взаимодействие с данными - мы ожидаем небольшой патч с модульными тестами. Нам не нужен специальный синтаксический анализ Content-Disposition, но его достаточно, чтобы получить имя файла.

@yurydelendik Я начал над этим работать. Это моя первая попытка внести свой вклад в проект с открытым исходным кодом. Мне нужно время, чтобы освоиться с кодовой базой. :)

@yurydelendik , @timvandermeij Могу я поднять этот вопрос, если вас всех устраивает?

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

Исправлено в # 9379.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги