Как избежать случайных поврежденных загрузок - PullRequest
2 голосов
/ 09 июля 2010

Мой веб-сайт содержит MSI-файл, который необходимо загрузить пользователям. В этом файле нет ничего особенного. Он находится в каталоге на веб-сервере с обычным HREF, указывающим на него, на который нажимают пользователи. Иногда пользователи жалуются, что не могут открыть файл msi, поскольку установщик Windows утверждает, что файл поврежден. Повторная загрузка файла не помогает. Я заканчиваю тем, что посылаю файл по электронной почте как вложение, которое обычно работает.

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

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

Ответы [ 2 ]

1 голос
/ 09 июля 2010

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

Редактировать: Кроме того, я считаю, что большинство браузеров не будут кэшировать страницы, если параметры Get и Post не будут одинаковыми. То же самое , вероятно применимо к любому URL в целом. Попробуйте добавить уникальный параметр get (или post) в конец URL-адреса каждой загрузки. Вы можете использовать текущее время или случайное число и т. Д. Вместо гиперссылки у вас может быть кнопка, которая при нажатии отправляет форму с уникальным параметром в URL-адрес загрузки.

1 голос
/ 09 июля 2010

Мой совет:

  1. Рекомендовать пользователям избегать IE (особенно старых версий) из-за усеченных загрузок, загрязнения кэша ...
  2. Совет пользователю очистить кеш перед повторной загрузкой файлов.
  3. Размещение файла на FTP вместо HTTP
  4. Предоставление пользователю контрольной суммы MD5 для проверки загрузки.
...