无法使用 Angular JS 在 CSV 文件中保存超过 8Mb 的内容

问题描述

我从后端收到一个字符串作为响应,其中包含超过 8MB 的 csv 内容

使用此代码

myService.getCsvexportContent(vm.searchParams).then(function (content) {
        var encodedUri = encodeURI(content);
        var link = document.createElement("a");
        link.setAttribute("href",encodedUri);
        link.setAttribute("download","MCsExport.csv");
        document.body.appendChild(link);
        link.click();
      });

当结果小于 8Mb 时,它会创建整个文件,但当它大于 8Mb 时,它会将一半数据保存到文件中,我会丢失数据。 (我可以通过浏览器调试看到大小)

我尝试了 angular-file-saver 但我仍然遇到错误,在 AngularJS 中依赖注入对我不起作用。

我尝试使用内容创建 Blob 对象,结果相同。

请帮忙。谢谢。

解决方法

试试这个,对我有用:

myService.getCsvExportContent(vm.searchParams).then(function (content) {
    var link = document.createElement("a");
    var blob = new Blob([content],{type: 'text/csv;charset=utf-8;'});
    var url = URL.createObjectURL(blob);
    link.href = url;
    link.setAttribute("download","MCsExport.csv");
    link.click();
  });
,

谢谢你的帮助。最后注入 ngFileSaver 对我有用。 bower cache clean 然后 bower install angular-file-saver --save-dev 和我注入的对象被识别。

所以 FileSaver.saveAs(blob,"filePath.csv") 工作得很好。

var blob = new Blob([content],{type: 'text/csv;charset=utf-8'});    
FileSaver.saveAs(blob,"Export.csv");

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...