Показывать изображения из Java Rest API в приложении Angular 5 - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть приложение Angular 5, которое использует Java Backend с базой данных MySql. Я должен перечислить некоторые пункты продукта. Изображения хранятся в базе данных MySql, и я могу получить ответ изображения через Rest API. Как показать изображения в угловом приложении из Rest API?

Это мой Rest API в проекте Java.

@GetMapping(path="/orderItem/image/{itemId}")
@ResponseStatus(HttpStatus.OK)
public void getImageForOrderItem(@PathVariable("itemId") long itemId, HttpServletResponse response) { 
    byte[] buffer = orderServiceImpl.getImageForOrderItem(itemId);
    if (buffer != null) {
        response.setContentType("image/jpeg");
        try {
            response.getOutputStream().write(buffer);
            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } 
}

Угловой запрос на отдых. Но этот код не работает должным образом. Изображения отображаются с пустыми разбитыми изображениями.

getImageForOrderItem(itemId : number)  {
    this.headers = new HttpHeaders();
    this.headers = this.headers.append('Content-Type', 'image/jpeg' );
    this.headers = this.headers.append("Authorization", "Basic " + this.bota);  
    this.options = {headers: this.headers};
    return this.http.get(this.baseUrl+"api/1/review/orderItem/image/"+itemId, { headers: this.headers, responseType: 'blob' });
}

this.restService.getImageForOrderItem(item.id).subscribe(
            (data:any) => {
            this.createImageFromBlob(data);
          });

imageToShow: any;
images:Array<any> = new Array();

createImageFromBlob(image: Blob) {
    let reader = new FileReader();
    reader.addEventListener("load", () => {
    this.imageToShow = reader.result;
    this.images.push(this.imageToShow);
    }, false);

    if (image) {
       reader.readAsDataURL(image);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...