【问题标题】:how to render image in angular from server in Angular?如何从Angular中的服务器以角度渲染图像?
【发布时间】:2019-03-09 18:13:44
【问题描述】:

我有一个 Spring Boot 后端......创建了一个返回字节数组图像的服务...... 如何在 Angular 中接收并渲染它...

这是我的角度代码:

getFile(id) {
const _loadFileByIdUrl = environment.baseUrl + `finance/api/getFile`;
const fd = new FormData();
fd.append('id', id);
return this.http.post<any>(_loadFileByIdUrl, fd
 );
} 

我正在尝试 console.log() 响应为 200,但我收到错误消息:消息:“解析 http://localhost:8080/finance/api/getFile 期间的 Http 失败”

【问题讨论】:

标签: angular


【解决方案1】:

除非您指出需要不同的响应类型,否则 http 客户端会尝试将响应解析为 JSON。对二进制数据使用 responseType blob

this.http.post(_loadFileByIdUrl, fd, { responseType: 'blob' });

假设您的模板中有一个图像标签,例如:

<img #smartesImage />

然后您可以像这样访问模板中的图像

@ViewChild('smartesImage') smartesImage: ElementRef<any>;

并使用以下代码实际显示二进制数据:

this.http.post(_loadFileByIdUrl, fd, { responseType: 'blob'}).subscribe(res => {
   const objectURL = URL.createObjectURL(res);
   this.smartesImage.nativeElement.src = objectURL;
});

【讨论】:

  • 当放置这一行时:this.http.post(_loadFileByIdUrl, fd, { responseType: 'blob' });我收到此错误:类型“blob”不可分配给类型“json”
猜你喜欢
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
相关资源
最近更新 更多