【发布时间】:2018-03-13 16:30:24
【问题描述】:
我正在从服务器端接收一个字节数组,并已成功将其转换为 blob。但是,当我尝试下载它时,它显示文件已损坏。以下是我的代码-
// In client side controller
this.contractsService.downloadPdf(id)
.then((result) => {
var blob = new Blob([result], { type: "application/pdf" });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "testing.pdf";
link.click();
});
还有,
// In client side service
private headers = new HttpHeaders({ 'Content-Type': 'application/json' });
downloadPdf(id: number) {
return this.http.get(this.apiRoutes.download + "/" + id, { headers: this.headers })
.map((res: any) => res)
.toPromise();
}
我们将不胜感激任何形式的帮助。 谢谢。
【问题讨论】:
-
查看执行 ajax 请求的 http 客户端的文档。您需要确保生成的
result是 Blob(被视为二进制)而不是字符串(被恶作剧和恶意编码处理)。这可能是this.http.get(...)调用的另一个参数或设置。
标签: asp.net-core angular5