Informativo - Selecionar Imagem, Salvar no banco e problema com a versão 9 do postgre

8 respostas
infocontroller

Bom pessoas, o caso é o seguinte:

já alguns dias eu venho tentando fazer coisas simples como pegar uma imagem, exibir, salvar no banco e recuperá-la para mostrar novamente, usando o NetBeans. O que ocorre é que encontrei este post que me ajudou a realizar parte da façanha: http://intelectolivre.blogspot.com.br/2008/07/exibindo-gravando-e-recuperando-imagens.html
O problema: depois de resolver todos os problemas e conseguir fazer a imagem aparecer e salvar no banco, percebi que não conseguia fazê-la reaparecer. Isso me custou mais de uma semana, tentei de tudo e não consegui fazer com que a imagem aparecesse.
A solução: após a peregrinação pela internet/google e vários testes, cheguei neste post sobre o tal do PostgreSql: http://postgresql.1045698.n5.nabble.com/Bytea-error-in-PostgreSQL-9-0-td3304087.html

Pois é, o problema era com o postgre 9 e não com o código. Para quem passar pelo mesmo problema, a solução é: habilitar esta linha no postgresql.conf: bytea_output = ‘escape’ # hex, escape

Bom, deixo aqui meus agradecimentos aos amigos: Lindoélio Lázaro do Intelecto Livre! e ao ViniGodoy que através das postagens, dos exemplos, muito contribui para meu aprendizado.

Abraço!

8 Respostas

R

Olá bom dia!

Que bom que conseguiu, é um alivio concorda?, também passei por maus momentos com imagem no banco ( postgre também ) e Web, dias atras também tentei ( juntamente com outros do grupo ) na resolução do mesmo problema, e posteriormente colocar a imagem no relatório, mais no meu caro a pouca experiencia ajudou muito para os complicadores.

Um Abraço!

infocontroller

Isso mesmo amigo rlira, as vezes para nós iniciantes o fato da inexperiência agrava e muito os problemas. Aproveitando a oportunidade, será que você pode disponibilizar o link ou a maneira que utilizou para levar a imagem para o relatório?

Abraço!

R

Olá Boa tarde.

Então, hoje foi meio corrido nem tive tempo e acabei acessando o grupo agora no fim da tarde, chegando em casa eu descrevo o que foi feito.

infocontroller

Estou no aguardo amigo!

R

Olá Boa noite!

Então, eu criei o relatório sem interação com o banco ou seja só arrastei os campos, e preenchi as expressões para eles baseado em meu modelo.
Depois copiei o arquivo .jrxml ou o .jasper para a pasta dentro do projeto, no projeto é que uma classe faz a consulta no banco retorna uma list que serve como argumento para o relatório ser preenchido ok? bem mais o que precisamos mesmo é a propriedade do campo image no relatório certo? então esta é a expressão que esta vinculada a image new ByteArrayInputStream((byte[])$F{conFoto})

Resumindo

arraste para a banda do relatório um campo do tipo Image

dentro da expressão do campo usando o seu campo ( conFoto )

fica desta forma new ByteArrayInputStream(( byte[] )$ F{conFoto} )


peguei a dica em http://javafree.uol.com.br/topic-870971-Imagem-do-Banco-de-Dados-no-Ireport.html

ViniGodoy

Eu me lembro de quando ajudei ele, aqui no GUJ mesmo, a gravar e carregar imagem do banco e desenhar na tela. E também lembro de quando ele falou que fez o tutorial. Legal ver que ajuda gente até hoje. :slight_smile:

R

Há detalhe que esqueci estou usando PostgreSQL

CREATE TABLE contato
(
con_codigo serial NOT NULL,
con_nome character varying(30),
con_email character varying(50),
con_endereco character varying(50),
con_foto bytea,

R

Pois é Sr. Vini, eu passei alguns dias com isto mais graças a vc´s consegui obter o resultado no relatório que apesar de simples, é bem funcional visto que a maioria das imagens realmente não ficam no banco mais, um cadastro de usuários com a foto dentro do banco foi o que eu estava imaginando.

Criado 7 de abril de 2013
Ultima resposta 9 de abr. de 2013
Respostas 8
Participantes 3