2017-03-14 183 views
3

上传文件我想用角和FileReader ApiJSON上传文件。浏览器崩溃时角

的问题是,比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'} 
     ); 
    } 
]); 
+0

如果它适用于较小的文件大小,则问题最可能发生在后端。你还可以发布后端代码吗? – Jagrut

+1

如果问题出现在后端,为什么浏览器会崩溃?我认为问题是JSON.stringify –

+0

目前没有后端实施。只有一个虚拟的休息端点仅用于测试。 至于后端是一个简单的Apache安装(默认配置)的PHP 5.5.9项目也使用ZF2。目前问题出现在当地环境。 – ibekiaris

回答

0

谢谢@Jeremy和@Jonas

这工作!问题是JSON.stringify

所以我删除了,现在一切都与浏览器OK!