Como exibir foto gravada em byte[] no MySql, usando JSF puro?

2 respostas
B

Olá pessoal!

Não consigo exibir a foto que foi gravado no banco de dados. Da a seguinte mensagem de erro:

SEVERE: Unable to get parts for j_idt8:j_idt13
javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded;charset=UTF-8
at org.apache.catalina.connector.Request.parseParts(Request.java:2772)

Consegui gravar no banco de dados da seguinte forma:

View:

Imagem: <h:inputFile value="#{grupoUsuarioControlador.fotografia}"/>.

GrupoUsuarioControlador:



@ManagedBean

@SessionScoped

public class GrupoUsuarioControlador implements Serializable{

private javax.servlet.http.Part fotografia;



public void adiciona() {

try {

EntityManager manager = this.getEntityManager();

GrupoUsuarioRepositorio repositorio = new GrupoUsuarioRepositorio(manager);
InputStream is = fotografia.getInputStream();
					
		byte[] bytes =  new byte[is.available()];  
	      is.read(bytes);  
	      is.close();  
		
		grupoUsuario.setFotoFrente(bytes);
					
		repositorio.adiciona(this.grupoUsuario);

Estou usando o JSF 2.2 e JPA, e não uso nenhum frame work como: PrimeFaces, RichFaces…

Gostaria que fosse exibida em um DataTable, dessa forma:
<h:column>
<f:facet name =“header”>
<h:outputText value =“Foto”/>
</f:facet>
<h:graphicImage value="#{grupo.fotoFrente}" id=“imagem”/>
</h:column>

Meu Bean:

@Entity

public class GrupoUsuario implements Serializable {

…

<a class="mention" href="/u/lob">@Lob</a>

private byte[] FotoFrente;

…

2 Respostas

tmvolpato

vc colocou no form multipart/form-data

Ex:

<h:form enctype="multipart/form-data">
B

Obrigado por responder!

Sim, eu ja havia colocado.
Pois eu tive problemas em salvar no banco, aí descobri que deveria colocar multipart/form-data em <:form.

Criado 31 de outubro de 2012
Ultima resposta 31 de out. de 2012
Respostas 2
Participantes 2