3

我想使用 jQuery-Validation-Engine 来验证文件输入的 MIME 类型。我怎么能这样做?

我的方法是这样的:

function checkMIME(field, rules, i, options){
    var file = $("#userfile")[0].files[0];
    var MimeFilter = /^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i;
    if (! MimeFilter.test(file.type)) {
     return options.allrules.validate2fields.alertText;
  }
}

感谢卡舒达

4

4 回答 4

7

好的,通过将这些行添加到query.validationEngine-LANG.js

"validateMIME":  {
    "func": function(field, rules, i, options){
   //add to input tag: data-validation-engine="validate[required, custom[validateMIME[image/jpeg|image/png]]]"

    var fileInput = field[0].files[0];
    var MimeFilter = new RegExp(rules[3],'i');

    if (fileInput) {
        return MimeFilter.test(fileInput.type);
    } else { return true;}
  },
"alertText": "* Wrong Mime Type."

},
于 2013-06-15T15:07:58.380 回答
4

通过修改您的代码,我实现了另一种验证文件 MIME 类型的方法:

首先将以下代码附加到 jquery.validationEngine.js 文件的 '_validateField' 方法中

case "checkFileType":
errorMsg = methods._checkFileType(field, rules, i, options);
break;

然后将以下代码附加到同一个文件中

_checkFileType: function (field, rules, i, options) {
        var uploadedFile = $(field);
        if (uploadedFile) {
            var extensions = rules[i + 1];               
            var mimeFilter = new RegExp(extensions);
            if (!mimeFilter.test($(uploadedFile).val().split('.').reverse()[0])) {
                return options.allrules.checkFileType.alertText;
            }
        }
        else {
            return true;
        }            
    },

最后,将以下行追加到 jquery.validationEngine-en.js 文件

"checkFileType": {
                    "regex": "none",
                    "alertText": "* Wrong file Type."                    
                },

用法:

<input type="file" name="file" id="myfile" class="validate[checkFileType[jpg|jpeg|gif|JPG|png|PNG]]"/>
于 2013-08-30T12:41:10.357 回答
0

如果不需要图像,只需将其添加到 jquery.validationEngine.js 选项添加到输入标签:

class="validate[optional, custom[validateMIME[image/jpeg|image/png]]]" 

如果是必填字段,请添加

添加到输入标签:

class="validate[required, custom[validateMIME[image/jpeg|image/png]]]"



"validateMIME":  {
    "func": function(field, rules, i, options){
   //add to input tag: data-validation-engine="validate[required, custom[validateMIME[image/jpeg|image/png]]]"

    var fileInput = field[0].files[0];
    var MimeFilter = new RegExp(rules[3],'i');

    if (fileInput) {
        return MimeFilter.test(fileInput.type);
    } else { return true;}
    },
    "alertText": "* Wrong Mime Type."

    },
于 2015-06-01T08:41:55.293 回答
0

这对我有用

在表单域中

class="validate[required], custom[validateMIME[pdf|doc|docx]" 

在 query.validationEngine-LANG.js

"validateMIME": {   

    "func": function(field, rules, i, options){
            var uploadedFile = $(field);  

            if (uploadedFile) {
            var extensions = rules[i+2];               
            var mimeFilter = new RegExp(extensions);                     

            return (mimeFilter.test($(uploadedFile).val().split('.').reverse()[0])) ? true : false;
            }                      

     },                        
 "alertText": "Wrong File Extension"
 },  
于 2018-06-08T15:19:51.677 回答