【问题标题】:jQuery-Validation-Engine - Validation File MIME TypejQuery-Validation-Engine - 验证文件 MIME 类型
【发布时间】:2013-06-13 21:04:38
【问题描述】:

我想使用 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;
  }
}

谢谢 卡舒达

【问题讨论】:

    标签: jquery-validation-engine


    【解决方案1】:

    好的,通过将这些行添加到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."
    
    },
    

    【讨论】:

    • 为我工作.. 谢谢。
    • @Kashuda - 此代码适用于错误的 mime 类型...但此验证也适用于正确的 mimetype..
    【解决方案2】:

    通过修改您的代码,我实现了另一种验证文件 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]]"/>
    

    【讨论】:

      【解决方案3】:

      如果不需要图像,只需将其添加到 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."
      
          },
      

      【讨论】:

        【解决方案4】:

        这对我有用

        在表单域中

        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"
         },  
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-08-05
          • 1970-01-01
          • 2023-03-19
          • 2012-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多