如何让jQuery限制上传文件类型?
我想让jQuery将文件上传字段限制为只有jpg / jpeg,png和gif。 我正在做PHP
后端检查。 我正在通过JavaScript
函数运行我的提交按钮,所以我只需要知道如何在提交或提醒之前检查文件类型。
您可以获得与任何其他字段相同的文件字段的值。 但是,你不能改变它。
所以为了表面检查一个文件是否有正确的扩展名,你可以这样做:
var ext = $('#my_file_field').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
alert('invalid extension!');
}
没有插件只需要这个任务。 从一些其他脚本将它们拼凑在一起:
$('INPUT[type="file"]').change(function () {
var ext = this.value.match(/.(.+)$/)[1];
switch (ext) {
case 'jpg':
case 'jpeg':
case 'png':
case 'gif':
$('#uploadButton').attr('disabled', false);
break;
default:
alert('This is not an allowed file type.');
this.value = '';
}
});
这里的技巧是将上传按钮设置为禁用,除非选择了有效的文件类型。
你可以使用jQuery的验证插件:http://docs.jquery.com/Plugins/Validation
它恰好有一个accept()规则,它完全符合你的需求:http://docs.jquery.com/Plugins/Validation/Methods/accept#extension
请注意,控制文件扩展名不是防弹的,因为它与文件的MIME类型无关。 所以你可以有一个.png这是一个word文档和一个.doc,这是一个完全有效的PNG图像。 所以不要忘记在服务器端做更多的控制;)
链接地址: http://www.djcxy.com/p/46773.html