2013-03-15 100 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/