0

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

我将valdr-validation-plugin与 AngularJS 一起使用,并编写了这个自定义验证来验证要上传的文件的扩展名。通常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参数获取文件的扩展名,但它显示value is undefined错误。

我从下面的代码中调用了这个自定义验证。将该验证器注册到应用程序配置,然后使用它来验证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"
                }
            }
        }
    });
});

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

4

0 回答 0