【问题标题】:How to download a file in angular, which is received as application/octet-stream如何以角度下载文件,该文件作为 application/octet-stream 接收
【发布时间】:2019-10-12 17:18:22
【问题描述】:

我正在创建一个网页,该网页必须下载 csv 格式的文件。
REST API 返回文件。

访问 Api 时出现错误。
我猜这是因为文件正在转换为 JSON。如何从后端获取并处理。

service.ts

return this.http.get(URL);             

【问题讨论】:

标签: angular angular6 downloadfile


【解决方案1】:

将八位字节流转换为任何所需的数据类型。
我有类似的情况,我将 OCTET-STREAM 转换为 pdf。

略有不同,可能对其他人有帮助,我收到了 json 响应,而 octet-stream Array 是该 json 响应中的一个字段。

在这种情况下,将 .pdf 替换为 .csv

octet_array 是八位字节值的数组。

  let arr = new Uint8Array(octet_array);
        let downloadLink = document.createElement('a');
        let b = new Blob([arr], { type: 'application/octet-stream' })
        downloadLink.href = window.URL.createObjectURL(b);
        downloadLink.setAttribute('download', "prescription.pdf");
        document.body.appendChild(downloadLink);
        downloadLink.click();
        downloadLink.parentNode.removeChild(downloadLink);

【讨论】:

    【解决方案2】:

    您可以使用file-saver

    import * as FileSaver from 'file-saver';

    this.http.post(url, resource, { responseType: 'blob' })
     .subscribe((resp: any) => {
        FileSaver.saveAs(resp, `filename.csv`)
     });
    

    【讨论】:

    • 如何从响应头中获取文件名?
    猜你喜欢
    • 2011-11-21
    • 2010-12-28
    • 2013-12-28
    • 2012-11-25
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2019-04-01
    相关资源
    最近更新 更多