Jquery在上传时验证文件ext

时间:2013-03-05 10:51:10

标签: jquery

我有一个允许用户使用拖放功能上传图片的页面,我想将它们限制为只上传jpg文件。

我不得不承认,对于jquery来说,我是一个完全新手,所以我真的不知道如何使这项工作。

到目前为止我已经

var files = e.dataTransfer.files;
var ext = $('#drop-files').val().split('.').pop().toLowerCase();


// Show the upload holder
$('#uploaded-holder').show();

// For each file
$.each(files, function(index, file) {
    if($.inArray(ext, ['JPG','jpg','jpeg']) == -1) {
           alert('invalid extension!');
           return false;
       }

因为它没有任何作用,如果我删除'return false'它会告诉我每个文件都无效并且无论如何都要上传它们。

由于

顺便说一下,我知道有一些未公开的括号,我只是希望有人会看到我在我提供的代码部分中遗漏的明显内容

1 个答案:

答案 0 :(得分:2)

问题是因为你从false循环中的函数返回each,而不是提交处理函数。试试这个:

// For each file
var validExtension = false;
$.each(files, function(index, file) {
    if ($.inArray(ext, ['JPG','jpg','jpeg']) != -1 && !validExtension) {
        validExtension = true;
    }
}
return validExtension;