Когда сервер не предоставляет заголовок 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.
@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.