Загрузки Bulletproofing большого PDFs против неверной конфигурации браузера?

У меня есть сайт рабочий апач, основная цель которого в жизни состоит в том, чтобы подать большие файлы PDF (на 10-30 Мбит). Я получаю электронные письма справедливо часто от пользователей, говорящих, что у них есть проблемы при загрузке файлов:

  • "начнет загружать, но загрузка не завершается, замораживается приблизительно в 25%".

  • "Это, кажется, находит страницу, но просто вращается и вращается... Я позволяю ему пойти 5 минут Никакие данные. ОДНАКО: Когда я выбрал "загрузку", я получил ее в секундах".

  • "Это так или иначе начинает загружать PDF приблизительно в 10%, и в Chrome и в Firefox".

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

Я видел некоторые другие вопросы, которые описывают подобные проблемы, но они кажутся характерными для IIS, тогда как я выполняю апача:

Эта ошибка, кажется, не соответствует (неопределенным) отчетам, которые я получил:

Есть ли какие-либо методы для bulletproofing моя установка так, чтобы пользователи не испытывали столь многие из этих проблем? Определение браузера в JavaScript с соответствующим сообщением? Предупреждение пользователей против конкретных комбинаций браузера/плагина или автоматически обнаружение тех комбинаций? Прямо сейчас я не могу даже сказать, на какие строки посмотреть в моем апачском файле журнала, чтобы видеть, зарегистрирована ли какая-либо ошибка на стороне сервера. Возможно все это становится более сложным, чем Вы ожидали бы для того, чтобы подать простой статический файл, потому что Adobe Reader пытается быть хитрым - хотя эти PDFs не оптимизированы.

Если кто-либо хотел бы попытаться воспроизвести ошибку, PDF, для которого пользователи сообщили о проблемах, здесь: http://www.lightandmatter.com/sr/sr.pdf [Может теперь быть невозможно воспроизвести поведение, потому что я реализовал ответ Håkan Lindqvist.]

1
задан 13 April 2017 в 15:14
2 ответа

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

Chrome и Firefox упоминаются в вопросе, но, по крайней мере, Chrome поставляется со своим собственным просмотрщиком pdf. Однако, вполне возможно использовать плагин Acrobat Reader или аналогичный с любым из этих браузеров, так что просто зная, что браузер на самом деле не отвечает, какое программное обеспечение было использовано.

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

Это будет сделано путем установки Content-Disposition: attachment в HTTP ответе.

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

.
1
ответ дан 4 December 2019 в 00:23

Если вы можете повторить это, посмотрите на статус загрузки, заголовки запросов и ответов, это даст вам подсказку.

**Response Headers**
Accept-Ranges   bytes
Connection  Keep-Alive
Content-Length  9531692
Content-Range   bytes 11278-9542969/9542970
Content-Type    application/pdf
Date    Tue, 24 Jun 2014 21:08:45 GMT
Etag    "1b78005-919d3a-4f550c11dff40"
Keep-Alive  timeout=15, max=100
Last-Modified   Mon, 24 Mar 2014 02:11:33 GMT
Server  Apache/2.2.16 (Debian)


**Request Headers**
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection  keep-alive
Host    www.lightandmatter.com
If-Range    "1b78005-919d3a-4f550c11dff40"
Range   bytes=11278-
User-Agent  Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0

Статус загрузки - 206 Частичное содержимое. По определению, это означает, что "клиент" сделал этот запрос, а не наоборот.

Итак, клиент запрашивает, в данном случае байты=11278-, заголовки ответа подтверждают, что он получает Accept-Ranges.

Есть одна вещь, которая меня смущает, это то, что после цифры 8 есть заголовок гипса.

Первоначально размещенный здесь, но возможное (непроверенное) решение - добавить в файл htaccess следующее.

# Disable Byte-range for PDF files
<Files *.pdf>
    Header set Accept-Ranges none 
</Files>
0
ответ дан 4 December 2019 в 00:23

Теги

Похожие вопросы