Я занимаюсь разработкой веб-приложения с использованием Angular 7, Spring Boot и PostgreSql.
При весенней загрузке у меня есть класс Employee, который имеет много атрибутов, включая атрибут profilePicture, имеющий тип byte [].
Все остальные атрибуты работают нормально и отображаются, но моя проблема в том, что профиль не отображается.
Я попробовал все, преобразовав байтовый массив в Base64, добавив data:image/jpeg;base64,
или Blob, а затем в Base64 с помощью функции atob
:
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 - массив byteArray, который я получаю от веб-службы json.но у меня ничего не получалось.До того, как я добавил атрибут 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](https://i.stack.imgur.com/WKpYH.png)