Javascript NgfileUpload-如何在一个请求中发送所有文件时对每个文件应用验证

Javascript NgfileUpload-如何在一个请求中发送所有文件时对每个文件应用验证,javascript,ng-file-upload,Javascript,Ng File Upload,这是一个已经为一个请求中的多个文件制作的小提琴。现在我想进行一个验证,其中任何文件都不应大于1MB。我该怎么做?我怎样才能排除每个文件上的错误 您可以遍历每个文件并检查其大小,然后显示所需的任何错误。我只是在这里设置了错误消息,但您可以执行其他操作 //inject angular file upload directives and services. var app = angular.module('fileUpload', ['ngFileUpload']); app.controll

这是一个已经为一个请求中的多个文件制作的小提琴。现在我想进行一个验证,其中任何文件都不应大于1MB。我该怎么做?我怎样才能排除每个文件上的错误

您可以遍历每个文件并检查其大小,然后显示所需的任何错误。我只是在这里设置了错误消息,但您可以执行其他操作

//inject angular file upload directives and services.
var app = angular.module('fileUpload', ['ngFileUpload']);

app.controller('MyCtrl', ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) {
    $scope.uploadFiles = function (files) {
        $scope.files = files;
        if (files && files.length) {
            if (!files.every(function(file) {
              return file.size < 1;
            })) {
               return $scope.errorMsg = 'File size too big';
            };
            Upload.upload({
                url: 'https://angular-file-upload-cors-srv.appspot.com/upload',
                data: {
                    files: files
                }
            }).then(function (response) {
                $timeout(function () {
                    $scope.result = response.data;
                });
            }, function (response) {
                if (response.status > 0) {
                    $scope.errorMsg = response.status + ': ' + response.data;
                }
            }, function (evt) {
                $scope.progress = 
                    Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
            });
        }
    };
}]);

严格地说,从用户的角度来看,他们不会喜欢被你的网站以这种方式阻止。如果我妈妈被一条消息阻止,说图像最大1MB,她不知道什么是MB,更不用说减轻图像的重量了。所以她别无选择,只能离开你的网站。你应该通过静默地调整图像的大小来处理这个问题,无论是客户端画布还是服务器端。我相信每个上传的文件对象都有一个size属性。你试过用它吗?