使用Angular上传文件时浏览器崩溃

时间:2017-03-14 10:07:08

标签: javascript angularjs json filereader angularjs-fileupload

我正在尝试使用angular和JSON上传FileReader Api中的文件。

问题是,对于大于600 - 700 KB的文件,我的浏览器会崩溃。

据我所知,在请求资源时出现问题,而不是在文件阅读器读取文件并在base64

中对其进行编码时

有什么想法吗?

以下是代码:

function readFiles(files) {

  var reader = new FileReader();
  var data = [];

  function readFile(index) {

    if (index >= files.length) {

     UploadFilesResource.create(JSON.stringify(data), function  (successData) {
       scope.attachments = successData.data;
       scope.showUploadForm = false;
     }, function (errorData) {
       MessageSrv.setErrorMessage(errorData.error_message)
     });

     return;
  }

  var file = files[index];

  reader.onload = function(e) {
     data.push(prepareFile(file, e.target.result));
     readFile(index + 1)
   };

   reader.readAsDataURL(file);
  }

  readFile(0);
}

这是资源代码:

crmApp.lazy.factory('UploadFilesResource',
['CrmAppResource', 'CrmAppConfiguration',
    function ($resource, CrmAppConfiguration) {
        return $resource(
            CrmAppConfiguration.apiUrl + 'upload/files/:id',{id:'@id'}
        );
    }
]);

1 个答案:

答案 0 :(得分:0)

谢谢@Jeremy和@Jonas

那很有效!问题是JSON.stringify

所以我删除了它,现在浏览器一切正常!