首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery- Validation -Engine -Validation文件MIME类型

jQuery- Validation -Engine -Validation文件MIME类型
EN

Stack Overflow用户
提问于 2013-06-14 05:04:39
回答 4查看 7.9K关注 0票数 3

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

我的方法是这样的:

代码语言:javascript
运行
复制
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;
  }
}

感谢Kashuda

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-15 23:07:58

好的,通过将这些行添加到query.validationEngine-LANG.js中,找到了一个解决方案

代码语言:javascript
运行
复制
"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."

},
票数 7
EN

Stack Overflow用户

发布于 2013-08-30 20:41:10

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

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

代码语言:javascript
运行
复制
case "checkFileType":
errorMsg = methods._checkFileType(field, rules, i, options);
break;

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

代码语言:javascript
运行
复制
_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文件

代码语言:javascript
运行
复制
"checkFileType": {
                    "regex": "none",
                    "alertText": "* Wrong file Type."                    
                },

用法:

代码语言:javascript
运行
复制
<input type="file" name="file" id="myfile" class="validate[checkFileType[jpg|jpeg|gif|JPG|png|PNG]]"/>
票数 4
EN

Stack Overflow用户

发布于 2015-06-01 16:41:55

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

代码语言:javascript
运行
复制
class="validate[optional, custom[validateMIME[image/jpeg|image/png]]]" 

如果是必填字段,则添加

添加到输入标签:

代码语言:javascript
运行
复制
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."

    },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17097062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档