在角度7中显示来自Postgresql服务器的图像

时间:2019-03-15 09:09:36

标签: angular spring-boot angular7

我正在使用Angular 7,Spring Boot和PostgreSql开发一个Web应用程序。
在春季启动中,我有一个Employee类,它具有许多属性,包括一个具有byte []类型的profilePicture属性。
所有其他属性都可以正常工作并显示,但是我的问题是个人资料没有显示。
我尝试了所有方法,通过添加data:image/jpeg;base64,将字节数组转换为Base64或使用atob函数将Blob转换为Base64:

dataURItoBlob(dataURI) {
const byteString = window.atob(dataURI);
const arrayBuffer = new ArrayBuffer(byteString.length);
const int8Array = new Uint8Array(arrayBuffer);
for (let i = 0; i < byteString.length; i++) {
  int8Array[i] = byteString.charCodeAt(i);
}
const blob = new Blob([int8Array], { type: 'image/jpeg' });
return blob;
}

其中dataURI是我从json网络服务接收的byteArray。  但是对我没有任何帮助。在数据库中添加profilePicture属性之前,我是使用以下函数直接从服务器获取图像的:

createImageFromBlob(image: Blob) {
let reader = new FileReader();
reader.addEventListener('load', () => {
  this.avatarImgSrc = this.domSanitizationService.bypassSecurityTrustUrl(reader.result.toString());
  this.domSanitizationService.sanitize(SecurityContext.URL, this.avatarImgSrc);
}, false);

if (image) {
  reader.readAsDataURL(image);
}
}

有人可以帮助我吗?

更新:

这是控制台中显示的内容:

enter image description here

0 个答案:

没有答案