2010-07-08 50 views
2

我的網站託管一個用戶需要下載的msi文件。文件沒有什麼特別之處。它位於Web服務器上的一個目錄中,並且常規HREF指向用戶點擊的HREF。有時用戶會抱怨他們無法打開msi文件,因爲Windows Installer聲稱該文件已損壞。重新下載文件不起作用。我最終通過電子郵件將文件作爲通常可用的附件發送。如何避免偶爾損壞的下載

我的猜測是該文件在用戶的瀏覽器緩存中損壞,或者是用戶經歷的中介代理緩存。

爲什麼會發生這種情況?是否有一種技術/最佳做法可以最大限度地減少腐敗的可能性,或者如果在下載過程中確實損壞了用戶可能會得到新的文件副本?

回答

1

那麼如果原因只是緩存,那麼我認爲你可以重新命名文件,然後讓它們再次下載。這也適用於任何代理。

編輯:此外,我相信大多數瀏覽器不會緩存頁面,除非Get和Post參數保持不變。一般可能適用於任何URL。嘗試在每個下載的URL末尾添加一個唯一的get(或post)參數。您可以使用當前時間或隨機數等。而不是超鏈接,您可以使用一個按鈕,單擊該按鈕時,該按鈕會向下載URL提交一個具有唯一參數的表單。

+0

這將需要我手動更改名稱或有兩個鏈接到文件,我寧願不要做(儘管看起來我可能沒有選擇)。 我注意到有些網站要求您在開始下載之前將一些數據發佈到服務器。例如,大多數Microsoft下載要求您單擊「提交」類型按鈕以開始下載。任何想法,爲什麼? – Nonane 2010-07-10 14:34:54

+0

@nonane:我用我的理論爲什麼更新了我的答案。 – Ponkadoodle 2010-07-10 19:13:47

+0

我沒有測試過你的理論,雖然我認爲你可能對此是正確的。 – Nonane 2010-07-18 13:33:19

1

我的建議是:

  1. 建議用戶避免IE(尤其是舊版本),因爲截斷下載,緩存污染的...
  2. 建議用戶清除緩存之前重新下載文件。
  3. 在FTP上代替HTTP託管文件
  4. 爲用戶提供MD5校驗和以驗證下載。
+0

最終用戶非常缺乏經驗,理想情況下我不想對他們使用的工具施加任何限制或要求他們清除緩存。 – Nonane 2010-07-10 14:32:42

+0

對不起重新打開一個老問題,但我面臨同樣的問題。我喜歡MD5校驗的想法,但我們的用戶不是技術人員 - 是否有一個簡單的方法讓他們在下載後檢查MD5? – Sugrue 2011-10-05 16:05:22