Angular сохранить файл как csv result в Failed-network error Только в Chrome
Я использую следующий код для сохранения файла как csv.
$scope.saveCSVFile = function (result)
{
var a = document.createElement('a');
a.href = 'data:application/csv;charset=utf-8,' + encodeURIComponent(result.data);
a.target = '_blank';
a.download = $scope.getFileNameFromHttpResponse(result);
document.body.appendChild(a);
a.click();
$scope.isReportInProgress = false;
};
Файл работает в большинстве случаев, но по какой-то причине, когда файл больше 10 МБ, я получаю сообщение "Failed - Network Error".
Это происходит только на хром.
Я попытался найти в Интернете эту проблему и не смог найти что-либо релевантное.
Можете ли вы представить себе идею, почему это происходит? или, может быть, использовать другой способ сохранения файлов, который будет работать на chrome/firefox/IE вместо моей функции?
Ответы
Ответ 1
Я, наконец, использовал этот вариант, надеюсь, что он поможет следующей проблеме:
var blob = new Blob([result.data], {type: 'text/csv'});
var filename = $scope.getFileNameFromHttpResponse(result);
if(window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveBlob(blob, filename);
}
else{
var elem = window.document.createElement('a');
elem.href = window.URL.createObjectURL(blob);
elem.download = filename;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
}