在上载文件之前验证文件扩展名的验证错误

时间:2015-07-15 14:32:17

标签: javascript angularjs validation valdr

我尝试使用此自定义验证程序来验证所选文件的文件扩展名。

我在AngularJS中使用 valdr-validation-plugin 并编写了此自定义验证来验证要上载的文件的扩展名。 通常value参数包含要验证的数据的详细信息,但是在文件上载时它不起作用。

app.factory('fileValidator', function () {
return {
    name: 'fileExtension',
    validate: function (value, arguments)
    {

            if(value=== undefined) { return false; }
            else
            {
                var fileName = value.name,
                    extension = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();
                if( extension == "jpg" || extension == "jpeg" || extension == "png" || extension == "bmp" ){ return true; }
                else { return false; }
            }
        }
    };
});

在上面的代码中,我尝试使用value参数获取文件的扩展名,但它显示错误值未定义

我从下面的代码中调用此自定义验证。将该验证器注册到app config,然后用它来验证bannerImage。

app.config(function(valdrProvider) {
    valdrProvider.addValidator('fileValidator');
    valdrProvider.addConstraints({
        "Banner":
        {
            "bannerName":
            {
                "size":
                {
                    "min": 2,
                    "max": 512,
                    "message": "Banner name must between 2 and 512 characters"
                },
                "required" :
                {
                    "message" : "This field is required"
                }
            },
            "bannerLink":
            {
                "size":
                {
                    "min": 2,
                    "max": 1024,
                    "message": "Banner link must between 2 and 1024 characters"
                },
                "required" :
                {
                    "message" : "This field is required"
                }
            },
            "bannerImage":
            {
                "fileExtension":
                {
                    "allowedExtensions" : ['jpg','jpeg', 'png','bmp'],
                    "message" : "Allowed file types are JPG, JPEG, PNG, BMP"
                },
                "required":
                {
                    "required" : "This field is required"
                }
            }
        }
    });
});

它不起作用并显示很多错误。我该如何解决这个问题?

0 个答案:

没有答案