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服务器端的文件类型。