如何让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

上一篇: How to have jQuery restrict file types on upload?

下一篇: Opening a tab with a PDF attachment in a Webview