2014-05-21 11 views
0

在基於表單的網頁文件上傳過程中是否可能發生文件損壞?我在談論什麼時候將「文件」類型的輸入作爲表單的一部分提交併將文件保存在服務器上的某個位置(通常位於服務器應用程序定義的臨時上載目錄中)。如果在傳輸過程中可能發生破壞,在執行上載之前,有沒有辦法知道文件的校驗和,並確認上傳後校驗和沒有變化?如何判斷文件是否通過基於表單的網頁文件上傳(input type =「file」)

我們都將文件定期上傳到各個站點,而無需提前計算校驗和。如果沒有檢查,我們是否每次都有腐敗的危險?

+0

隨着HTML5的使用日益增多,您可以使用FileAPI和JavaScript md5校驗和函數與文件上傳後的服務器版本進行比較。不是最好的檢查,因爲數據很容易被欺騙,但這是一個基本的方法。並非所有瀏覽器都支持FileAPI。 – Kinnectus

+0

好主意,@Big Chris!謝謝! – hithere

回答

3

不應有任何損壞:TCP(HTTP的底層傳輸)使用校驗和內置了消息完整性檢查。是的,有一個錯誤的消息有一個正確的校驗和的可能性很小,但這通常不值得你去辨別和糾正。根據這份文件(http://dl.acm.org/citation.cfm?id=347561&dl=GUIDE&coll=GUIDE),被傳送的損壞數據包的可能性在1000萬到1百萬之間。大多數數據包大約爲1.4KB(由於以太網的MTU),所以如果您的平均上傳文件爲1MB,則每個1MB上傳損壞的風險在1比2800或1比170萬之間。這是一個相當廣泛的範圍,2800中的1比例肯定會讓我停下來思考,但這是你的呼喚。

如果收件人的網絡堆棧檢測到損壞,TCP確保數據包將被重新發送,這對使用TCP的應用程序(尤其是基於瀏覽器的應用程序)是透明的。

順便說一句,您可以使用HTTPS來獲得更高的消息完整性安全性。

+0

謝謝你的偉大答案! – hithere

相關問題