我們有客戶試圖通過移動連接下載setup.exe文件,該文件看起來很慢。Setup.exe文件在沒有cab文件的情況下通過不良連接下載
他們報告說,當他們點擊下載的setup.exe時,安裝嚮導啓動,但通過嚮導的一部分,他們收到一條錯誤消息,指出cab文件已損壞或丟失。
他們寄給我們一個問題的平板電腦,我們沒有問題下載文件,但 我可以通過使用https下載文件複製問題(https通常用於訪問網站的其餘部分,儘管它是不需要下載)。當我這樣做時,下載的文件是2.8MB。它應該是8MB。
我不認爲https是問題的根本原因,因爲我可以在瀏覽器歷史記錄中使用http查看下載鏈接,所以我知道客戶試圖使用http下載。我認爲問題在於,糟糕的連接阻止了完整的下載,但瀏覽器就像完成了一樣。
有沒有辦法確保文件完全下載,或根本沒有下載?爲什麼瀏覽器沒有指出下載不完整?
對於沒有Content_Length標頭,您是絕對正確的。我實際上有代碼(C#)來打開FileStream並將其發送到Response。我現在已經將Content-Length添加到Response頭部,現在我可以通過文件大小和進度條獲得一個很好的對話框。我試圖通過在調試器中設置斷點來模擬不完整的下載,並提前退出。但是,瀏覽器(IE7)仍然報告下載已完成 - 儘管只有17kb而不是8MB。我想也許我的測試是不正確的,因爲我可能仍然在發送Response.End ....... – Colin 2010-03-19 14:20:51