我看到了一个解决方案: How to validate form with input[type=file] in angularjs
我想知道是否有可能检查,例如渲染器内的mimetype或文件大小? 我不想只设置当前所选文件(对于所需的输入字段文件)我还想检查文件是否太大。
答案 0 :(得分:1)
是的,你可以这样做。使用文件api。在文件更改回调中,您可以使用以下代码处理文件:
myApp.directive('validFile', function () {
return {
require: 'ngModel',
link: function (scope, el, attrs, ngModel) {
var maxSize = 100;
var invalidSize = true;
ngModel.$render = function () {
// when you setValidity 'invalidSize' to false
// then you 'form.myfile.$error.invalidSize' will be true.
ngModel.$setValidity('invalidSize', invalidSize);
};
el.bind('change', function(evt){
console.log(evt);
var files = evt.target.files; // You can handle multifile here but need input file set multiple attribute
var file = files[0];
console.log(file); // You can see all these attribute here.
console.log(file.size);
if(file.size > maxSize){
invalidSize = false;
}else{
invalidSize = true;
}
scope.$apply(ngModel.$render);
});
}
};
});