jquery在提交之前validation文件类型和文件大小

可能重复:
使用jQuery,在上传之前限制文件大小

是否有一个好的jquery脚本或其他方法可以在将文件上传到服务器之前validation文件大小和文件类型? 我试过看了一遍但从来没有找到任何可以做这样的事情。

我建议如下:

$('input:file').change( function(e) { var files = e.originalEvent.target.files; for (var i=0, len=files.length; i 

JS小提琴演示 。

由于JavaScript无法从选定的fileList对象中删除文件,因此您必须对文件属性执行检查,并提示用户取消选择因文件类型或文件大小而被视为无效的文件(显然,阻止表单提交):

 $('input:file').change( function(e) { var files = e.originalEvent.target.files; for (var i=0, len=files.length; i 100) { console.log('Please deselect this file: "' + n + '," it\'s larger than the maximum filesize allowed. Sorry!'); } } });​ 

JS小提琴演示 。

(最后一个代码在Ubuntu 11.04上测试并在Chromium 19和Firefox 15中运行。)

从这里开始: 我如何异步上传文件?

我不确定它是否适用于旧的浏览器(如IE6 / 7(呃,他们还在使用那些),但你可能会试试。 它应该适用于所有现代浏览器。 试试吧:

 
$(':file').change(function(){ var file = this.files[0]; name = file.name; size = file.size; type = file.type; //your validation });

有jQuery文件上传插件 ,无需重新发明轮子。 它有一个acceptFileTypes选项,允许您提供正则表达式以匹配给定的文件类型,以及maxFileSize选项,例如:

 { fileTypes: /^(gif|jpeg|png)$/, maxFileSize: 20000000 // 20MB } 

但请注意,这仅适用于支持File API的 Web浏览器。 否则,您必须validation服务器端的文件类型。