web-dev-qa-db-ja.com

Angular csvとしてファイルを保存すると失敗します-ネットワークエラー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;
};

ファイルはほとんどのケースで動作していますが、何らかの理由でファイルが10MBより大きい場合、「失敗-ネットワークエラー」が発生します。

クロムでのみ発生します。

私はこの問題をウェブで検索しようとしたが、関連するものを見つけることができなかった。

なぜそれが起こるのか、あなたは思いつきますか?または、私の関数の代わりにchrome/firefox/IEで機能する別のファイル保存方法を使用しますか?

16
Liad Livnat

私は最終的にこれを使用しました、それが次の人がこの問題に遭遇するのを助けることができることを願っています:

 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);
            }
31
Liad Livnat