Salvei umas imagens no banco de dados utilizando o hibernate e agora preciso mostra-las.
Elas estão corretas no banco.
Imaginem que tenho uma lista de produtos qeu é enviada para uma jsp e nessa jsp eu faço uma iteração em cada produto.
Como faço para mostrar a imagem ?
Já tentei algo assim:
Esse produto.image retorna um Blob.
Já mudei ele pra retornar byte[], mas tb não funcionou:
return this.image.getBytes(1, 5000);
Outro teste foi:
if(this.image != null) {
InputStream in = this.image.getBinaryStream();
int n = 0;
while ((n=in.read(buf))>=0)
{
baos.write(buf, 0, n);
}
in.close();
byte[] bytes = baos.toByteArray();
return bytes;
}
Olá amigo, tempo atrás precisei desenvolver algo desse tipo.
Eu tinha uma tela de upload de imagem, essa imagem eu convertia em array de bytes e armazenada em banco.
Mas para o caso eu tinha uma tabela separada para isso.
Eu tinha um mapeamento para a imagem onde quando eu selecionava o objeto primario eu trazia a imagem através de subdominio no momento da requisição.
eu tinha um servlet basico mapeado da seguinte forma "/static/img" -> ServletImages
e no html no momento que eu printava o conteudo da página, eu printava a tag img da seguinte forma
No servlet vc precisa adicionar os headers content-Type Ex.: image/jpeg, image/png, image/gif, etc. E no outputStrem do servlet vc printa os bytes da imagem.
funcionava ok.
Depois melhorei a implementação quando adicionei o SpringMVC onde funcionava da mesma forma pelo @Controller do Spring e a url da action deixei como
Precisa especificar o header content-type image/xxx, dependendo da imagem é claro.