角度上传组件,设置最小和最大上传文件大小

时间:2017-10-04 11:26:19

标签: javascript node.js angular file-upload

我正在处理将通过nodejs发送文件的上传文件组件,但我的文件大小有问题,因为如果文件大于几kb我收到此错误:

Error: request entity too large (from nodejs)
[HTTP/1.1 413 Payload Too Large 7ms] (on browser console).

使用angular在前端创建上传组件,我需要在前端设置解决方案来设置最小和最大文件大小。

here is a fiddle with the angular component.

1 个答案:

答案 0 :(得分:0)

您可以使用指令获取文件大小

    app.directive('checkFileSize', function() {
  return {
    link: function(scope, elem, attr, ctrl) {
      function bindEvent(element, type, handler) {
        if (element.addEventListener) {
          element.addEventListener(type, handler, false);
        } else {
          element.attachEvent('on' + type, handler);
        }
      }

      bindEvent(elem[0], 'change', function() {
        alert('File size:' + this.files[0].size);
      });
    }
  }
});

另一种方法是在发送到服务器时获取文件大小,如

uploader = new FileUploader();
uploader.filters.push({
    'name': 'enforceMaxFileSize',
    'fn': function (item) {
        return item.size <= 10485760; // 10 MiB to bytes
    }
});

更新了小提琴 Fiddle

相关问题