2013-03-15 98 views
0

好吧,這是令人沮喪的。我已經搜索了很多關於如何驗證選定的文件(上傳)擴展和大小,但在文件大小問題上沒有成功的谷歌。我在asp.net中有一個圖片上傳控件(意思是上傳圖片),但擴展名和文件大小在服務器上進行了驗證。這就是它的工作原理。如果用戶提交1GB文件,該文件是重命名爲.jpg的電影,該怎麼辦?使用javascript/jquery驗證文件上傳

不知何故,Twitter例如設法驗證客戶端的輸入文件,擴展名和文件大小。在提交給服務器之前,任何人都有任何想法如何做到這一點?

謝謝! LE:不,不是HTML5。它在所有瀏覽器中都不受支持。我需要一個解決方案在IE 7和8中工作!

+1

看起來你不看很難在這裏無論是。 http://stackoverflow.com/questions/4112575/client-checking-file-size-using-html5 – 2013-03-15 18:41:58

+0

這有點太簡單了:https://www.google.com/search?q=jquery+file+upload +驗證...我使用https://github.com/valums/file-uploader進行異步上傳,但是如果您喜歡,可以使用驗證位 – BLSully 2013-03-15 18:41:59

回答

3

如果用戶瀏覽器支持html5 fileapi,則可以從文件輸入中讀取文件大小。

document.getElementById('file').files[0].size //size of file in bytes 
document.getElementById('file').files[0].name //name of file 
document.getElementById('file').files[0].type //mime type 
+0

感謝您的回答,但如果我錯了,請糾正我,html5在所有現代瀏覽器中都不受支持。 IE 7和8,可能事件9不支持它?我需要一種方法來處理這些問題。 – osmiumbin 2013-03-15 18:43:55

+0

你說現代瀏覽器,但你叫IE7和8(和9)?如果您希望在所有這些瀏覽器中都能正常工作,我認爲這不是一個好主意,但您可能需要查看瀏覽器特定的解決方案,例如IE中的ActiveXObject或甚至* dum dum dum * Flash。 – Musa 2013-03-15 18:50:34

0

正如Musa指出的那樣,HTML5 api可能會濾除大部分情況。

有專有的ActiveX方法也可以這樣做,但支持有點未知。

如果你堅持不HTML5格式的Flash可以爲你做檢查,你可以看看在爲類似的SWFUpload https://code.google.com/p/swfupload/