我正在创建一个网页,需要下载CSV格式的文件,REST API将返回该文件。访问API时出现错误,我猜测是因为文件被转换为JSON了。如何从后端获取并处理它?service.ts。
return this.http.get(URL);
import * as FileSaver from 'file-saver';
this.http.post(url, resource, { responseType: 'blob' })
.subscribe((resp: any) => {
FileSaver.saveAs(resp, `filename.csv`)
});
将八位字节流转换为任何所需的数据类型。
我曾遇到过类似的情况,将八位字节流转换为pdf格式。
稍有不同,也许对其他人有帮助,我收到的是json响应,其中octet-stream数组是该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);