在将文件大小传递到服务器端之前,在客户端处理文件大小

File size handling in client side before passing it to server side

本文关键字:文件大小 客户端 处理 服务器端      更新时间:2023-09-26

我只想在客户端验证文件大小。下面的代码只处理成功。我还想处理文件大小。当前,如果文件大于2MB, 500(内部服务器错误)会返回后台。

是否有一种方法手动处理它并设置错误为"最大文件大小应该是2MB"?

Thanks in advance

注意:下面的代码是AngularJS的一部分
file.upload(url, function(data) {
    if(data.success !== true) {
        $scope.$apply(function() {
            $scope.design.pdf.status = '';
            $scope.errors.pdf = data.data;
        });
        return;
    }
    $scope.$apply(function() {
        $scope.design.pdf = {
            status: 'uploaded',
            file: data.data.name,
            name: data.data.original,
            size: data.data.size
        }
    });
});

我假设您使用input type='file'按钮。你可以创建一个指令,在按钮发生变化时绑定它,并获取它的大小。

指令:

app.directive('customUpload', function(){
  return {
    restrict: 'A',
    link: function(scope, element, attrs){
        element.on('change', function(){
          //size in bytes
          var size = element[0].files[0].size;
          console.log(size);
          //do something with the file
        });
      }
    };
});

和html:

<input type='file' custom-upload>

下面是一个plunker的所有代码:http://plnkr.co/edit/GB6MFOWMbjOA7obFBq83?p=preview