Я разрабатываю веб-приложение, используя 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 — это массив байтов, который я получаю от веб-службы 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);
}
}
Может кто-нибудь помочь мне ?
Обновлять :
Вот что отображается в консоли:
Да, я обновил свой пост, есть формат, который возвращает его из веб-сервиса.
Возможно, вам нужно создать изображение и поместить туда данные base64 в качестве источника, как описано там stackoverflow.com/questions/21227078/… . Вы пробовали это?





Вы проверили, правильно ли вы получаете байты на стороне клиента?