1
resposta

Img salva no banco (blob), não aparece na view

Olá, depois de codificar o controller e a view a img não é exibida. Segue o controller e o teste na view, lembrando que a img estática aparece, mas a dinâmica não!

                  <c:choose>
                      <c:when test="${usuario.avatar.id == null}">
                             <img src="<c:url value="/global/portraits/usuario.png"/>" alt="..."/>
                      </c:when>
                      <c:otherwise>
                             <img src="<c:url value="/avatar/load/${usuario.avatar.id}"/>" alt="..."/>
                         </c:otherwise>
                  </c:choose>
@RequestMapping(value = "/load/{id}", method = RequestMethod.GET)
    public ResponseEntity<byte[]> loadAvatar(@PathVariable("id") Long id) {

        Avatar avatar = avatarService.findById(id);

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.valueOf(avatar.getTipo()));

        InputStream is = new ByteArrayInputStream(avatar.getAvatar());

        try {
            return new ResponseEntity<byte[]>(IOUtils.toByteArray(is), headers, HttpStatus.OK);
        } catch (IOException e) {
            LOG.error("Ocorreu um erro ao recuperar o Avatar!", e.getCause());
        } finally {
            try {
                is.close();
            } catch (IOException e){
                LOG.error("Ocorreu um erro ao fechar o stream dp arquivo!", e.getCause());
            }
        }
        return null;
    }
1 resposta

Oi Clerman, da algum problema no servidor? cai em algum dos catch? Caso não caia, no devtools do seu navegador, quando rola a requisição para a imagem, aparece alguma informação que possa nos ajudar?

Outro detalhe, talvez esse post possa te ajudar => https://domineospring.wordpress.com/2016/05/02/abstraindo-o-download-de-arquivos-no-spring-mvc/