Браузер падает при загрузке файла с 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 ответ
Спасибо, @ Джереми и @ Джонас
Это сработало! Проблема была в JSON.stringify
Так что я удалил это, и теперь все в порядке с браузером!