Мне нужно скачать большой файл из углового. У меня есть ссылка, и когда клиент кликает, файл должен быть загружен. код в контроллере:AngularJs, скачать большие файлы
$scope.download = function(id, type){
LogService.getLogFile(id, type) //service call endpoint of backend
.then(function (data) {
var file = new Blob([data], {type: 'application/csv;charset=utf-8'});
var fileURL = $window.URL.createObjectURL(file);
a.href = fileURL;
a.download = fileName;
a.click();
})
.catch(function (err) {
//error
});
}
Он работает для небольших файлов (300MB), но с большими файлами (800MB) не работают. Мне нужно будет скачать файлы до 4Gb. И с основным браузером (Chrome, Mozilla и Safari). Потому что я видел в jimmywarting/StreamSaver.js решение (не тестировалось), но только для Chrome и Opera.
Я использую узел Js в интерфейсе, код:
function getFile(req, res){
res.setHeader('Content-Type', 'application/octet-stream');
res.setHeader('Content-disposition', 'attachment');
var filePath = '....'; //PATH
var readStream = fs.createReadStream(filePath);
readStream.pipe(res);
})
.catch(function() {
res.sendStatus(400);
})
Спасибо.
Не работает, ошибка «Веб-страница не найдена для адреса blob». Спасибо –
try 'window.location.href = data;' –
window.location.href = data; заменяя весь код? –