Отображение изображения с REST-сервера с весенней загрузкой - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть REST-сервер Spring Boot.

Контроллер возвращает сохраненное изображение как:

@ResponseBody ResponseEntity<Resource> myController(@PathVariable("id") final Long id){
   ...
}

Как мне отобразить его на моей html-странице?

<html>
  ...
     <img src="???"/>
  ...
</html>

Я могу добавить код JQUERY / AJAX, который будет таким образом получать изображение для меня, но что мне с ним делать тогда?

1 Ответ

0 голосов
/ 04 апреля 2019

Я наконец нашел решение по следующим ссылкам:

https://o7planning.org/en/11765/spring-boot-file-download-example https://community.liferay.com/forums/-/message_boards/message/26404099

1) Я читаю изображение как байтовый массив

2) Я должен закодировать его в Base64

Я использую Base64.getEncoder (). EncodeToString (my-image-bytes) .getBytes ()

3) Я возвращаю его как ByteArrayResource:

return ResponseEntity.ok()
                .contentType(MediaType.parseMediaType("application/octet-stream"))
                .header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + name + "\"")
                .contentLength(data.length)
                .body(new ByteArrayResource(data));

4) На своей странице я загружаю его как изображение следующим образом:

$.ajax({
                url: 'url-to-get-image-api-controller',
                type: 'GET',
                statusCode:{
                    200: function(data){
                        $("#thumb1").html('<img src="data:image/jpg;base64,' + data + '" />');
                    }
                }
            });

Это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...