【发布时间】:2023-03-10 03:43:01
【问题描述】:
我目前正在处理在我的系统中使用 angular 2(测试版)版本的安全 API 下载文件(PDF/excel/文本)的任务。
我使用了带有身份验证标头的 post API,并尝试使用接收到的数据字节创建 blob。
我尝试过使用以下代码
return this.http.get(url, { headers: this.headers}).map( response => response.blob())
但是,我得到了 blob 方法没有在 angular 2 HTTP 中实现的错误。
所以我正在尝试以下代码,我需要将字符串转换为字节数组。
return this.http.get(Configuration.API_URL + url, { headers: this.headers }).map(
response => {
var bytes = [];
var utf8 = encodeURIComponent(response.text());
for (var i = 0; i < utf8.length; i++) {
bytes.push(utf8.charCodeAt(i));
}
var data = new Blob([bytes], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(data);
window.open(fileURL);
}
);
这里我遇到了字节数组的一些问题。字节数组与API发送的不同。
在将字符串转换为字节数组或在 Angular 2 HTTP 获取请求中使用 blob 时需要帮助。
【问题讨论】:
-
是的,blob() 即将推出。同时,请查看:stackoverflow.com/questions/35368633/…
-
谢谢 mico 这个 xhr 的回答帮助了我
-
字节数组有什么区别?所有元素还是只有页眉/页脚?
-
我使用了这个模块:alferov.github.io/angular-file-saver 用于下载 excel 文件。如果您需要查看我编写的实际代码,请告诉我。
标签: angularjs http typescript angular blob