Aplicaçao Web: Imagem no banco de Dados  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Bom dia, estou com um problema e gostaria da ajuda de voces.
Preciso salvar uma imagem no banco de dados de uma aplicaçao Web.
Quando executo em minha máquina local funciona sem problemas mas, quando fiz o deploy da aplicaçao para o servidor veio o problema.
Uso o seguinte codigo na minha classe DAO que insere a imagem no PreparedStatement:

(O método preferenciaContrato.getCaminhoImagem() retorna a url da imagem ex: C:\diretorio\imagem.jpg)


Porém, como a classe DAO está no servidor este caminho (da imagem) nao é encontrado. E me retorna o seguinte erro:


java.io.FileNotFoundException: C:\Documents and Settings\Christiano\Meus documentos\christiano\doidinho.jpg (No such file or directory)


A questão é: Como eu faço para fazer este UpLoad da imgem e salva-la no banco de Dados?

Obrigado desde já.

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
the_negao
JavaChild
[Avatar]

Membro desde: 06/01/2005 01:58:58
Mensagens: 119
Localização: Feira de Santana - BA
Offline

1º) Você tem que colocar para seu form de cadastro enviar os dados em multipart, acrescentando: enctype="multipart/form-data"

2º) Você pega o InputStream do seu file proveniente do form

3º) Se no seu Banco de Dados o campo for Blob ou LongBlob, você pega o InputStream converte para Blob e grava no banco..


É isso ae...

® Sérgio Souza ®
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Ok! E como ficaria isto? Assim?

<form name="formConteudo" method="post" action="servletcontato" enctype="multipart/form-data">

é apenas isto?

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
lnd007
Thread.start()
[Avatar]

Membro desde: 16/03/2005 17:03:04
Mensagens: 28
Localização: São Paulo - SP
Offline

Cara, não sei como está o andamento do seu projeto, se estiver na fase final creio que minha dica não vá valer a pena.
Nas apliações web aqui da universidade, costumamos guardar no banco uma String com o caminho da imagem, ao inves da imagem em si. Poupa hd e deixa o sistema mais rapido.

System.out.println("Leandro");
[Email] [MSN]
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Nao, cara, guardar apenas o caminho nao é boa soluçao pois se a url for perdida ou se o cara apagar a imagem o sistema gera erro.

Preciso realmente fazer o upload da imagem para o BD.

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
ricardosoares
JavaEvangelist
[Avatar]

Membro desde: 03/12/2004 09:49:13
Mensagens: 318
Localização: São Paulo, SP, Brasil
Offline

Acho que está faltando vc fazer o upload do arquivo pro servidor.

Suponho que o arquivo "C:\Documents and Settings\Christiano\Meus documentos\christiano\doidinho.jpg" esteja no computador cliente, onde roda o browser. Logo, o computador servidor, que roda o Tomcat, não o encontra.

Upload!!!

PS: Acho mais adequado guardar a imagem no BD e não em sistema de arquivo com apontamento. Fica mais organizado e, se vc usar uma tabela exclusivamente para as imagens, não afeta a performance.

Ricardo Soares
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Pois é exatamente este o meu problema.
Eu jah tenho uma funcao que guarda e recupera a imagem em um campo Blob do MySql.
Mas estou tendo dificuldades em fazer o Upload desta imagem para o banco dados que está no servidor. Local funciona normalmente mas eu preciso que meu formaulario envie a imagem para o Banco de dados.

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
the_negao
JavaChild
[Avatar]

Membro desde: 06/01/2005 01:58:58
Mensagens: 119
Localização: Feira de Santana - BA
Offline

Utilize o commons-fileupload.jar...

1) Verificar se o form é multipart:

2) Pegar o file do Form:

3) Depois você pega o InputStream:

Daí você corre para o abraço...

® Sérgio Souza ®
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Ola, Sergio, obrigado pela ajuda mas, ainda nao consegui fazer.
Voce poderia me dar um exemplo funcional disto?
Obrigado.

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline




"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Ok. Mas agora está dando o erro:

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

na linha:

List items = upload.parseRequest(request);

Ja adicionei o arquivo commons-fileupload-1.1.1.jar
O que mais devo fazer?

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

http://jakarta.apache.org/commons/io/

Baixa essa outra api das commons, ela é requerida para a fileupload funcionar...

Poe o jar lá na tua lib com a fileupload q tah na mao daih...

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
christianovale
JavaChild
[Avatar]

Membro desde: 10/05/2005 14:32:08
Mensagens: 134
Localização: 000
Offline

Ok! Funcionou. Muito Obrigado!

-------------------------------
Christiano Vale
Desenvolvedor Java
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
fpaimlima
Thread.start()

Membro desde: 09/03/2005 21:30:20
Mensagens: 43
Offline

vlw pelas dicas, isso salvou minha pele
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team