Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exibir foto na página web

Olá, gostaria de ajuda no seguinte: Estou buscando uma foto através de um webservice e recebo em byte[]. Consigo converter essa foto em arquivo e salvar em uma pasta do projeto, mas preciso exibir na página sem salvar o arquivo, ou seja, converter o byte[] e referenciá-lo em uma tag do primefaces para a foto ser exibida e não ter que salvar o arquivo. Já dei uma pesquisada, mas não consegui achar uma solução.

Desde já agradeço.

2 respostas

Ninguém? Segue o código e o erro que ocorre, de repente alguém tem alguma idéia:

@ManagedBean
@RequestScoped
@Named("fotoBean")
public class FotoBean {

    public StreamedContent getConteudoImagem() {
        try {
            FacesContext context = FacesContext.getCurrentInstance();

            byte[] fotoEmBytes = consultarProntuarioBC.recuperaFoto();

             InputStream is = new ByteArrayInputStream(fotoEmBytes);
             DefaultStreamedContent foto = new DefaultStreamedContent(is);
            return foto;
        } catch (Exception e) {
            return new DefaultStreamedContent();
        }
    }
}

A tag do xhtml

<h:graphicImage library="default" value="#{fotoBean.conteudoImagem}"  cache="false"/>

O erro gerado

Caused by: java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
solução!

Acabei de encontrar o erro. estava usando <h:graphicImage ao invés de <p:h:graphicImage