Carregar imagem no Flex após Upload utilizando campo BLOB com Hibernate [ RESOLVIDO ]  XML
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Autor Mensagem
gui-jac
Debugger

Membro desde: 14/10/2007 12:03:38
Mensagens: 70
Localização: Ourinhos
Offline

Olá Pessoal.

Tenho uma aplicação que faz o upload de uma imagem escolhida pelo usuário.No caso, eu defino que a imagem será salva em C:\imagens\nomedaimagem.jpg. Este caminho eu salvo também no banco de dados para recuperar a imagem depois.Porém, eu gostaria que logo após fazer o upload, a imagem já fosse carregada em um mx:Image. Mas tenho alguns problemas quanto à isso:

1º - Não consegui ainda fazer o flex carregar imagens externas, ou seja, só carrega uma imagem quando ela está dentro do projeto
2º - Se faço o upload da imagem para dentro do projeto, ela só poderá ser carregada na próxima vez que eu fizer o deploy da aplicação

Agluém tem uma idéia de como resolver isto? Ou então, de repente, se alguém já trabalhou com campo Blob e flex também já ajuda.

Valeu.

This message was edited 3 times. Last update was at 16/10/2010 12:52:10

[MSN]
Rovides
Thread.start()

Membro desde: 20/06/2010 01:42:59
Mensagens: 33
Localização: Osasco
Offline

Fiz estas video aulas a um tempinho ja..
Parte 1
http://www.youtube.com/watch?v=rza_hG9H3ko

Parte 2
http://www.youtube.com/watch?v=dpc5vvGwL34&feature=related

Espero que ajude !

The Rovid's !
[Yahoo!] [MSN]
gui-jac
Debugger

Membro desde: 14/10/2007 12:03:38
Mensagens: 70
Localização: Ourinhos
Offline

Olá Rovides.
Com certeza ajudou sim cara.Obrigado.
Então.......você menciona no vídeo sobre mostrar como carregar a imagem à partir do banco de dados.Você já tem algo que poderia mostrar?

Imagino o quanto foi difícil encontrar a solução, realmente o material sobre isso não é tão vasto....tem várias coisas que também penei pra encontrar.
Mas também estou disposto a compartilhar informações.....qq coisa estamos aí.
valeu.
[MSN]
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

Não entendi se vc salva a imagem no computador do usuário. Se for assim, não vai ter como fazer em flex por razão de segurança do browser, que não te permite sair abrindo arquivo locais. Se vc estiver salvando no seu BD, bastaria salvar como Blob no campo e fazer uma chamada remota buscando a foto. Se for uma app Air, aí sim vc poderia acessar arquivos do comp do usuário, como o faz o Revelação Virtual.

[]s

Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
gui-jac
Debugger

Membro desde: 14/10/2007 12:03:38
Mensagens: 70
Localização: Ourinhos
Offline

Então, é flex mesmo, e não AIR.

Então, pensei em utilizar o cmapo blob mesmo, mas como carregar ele no Flex? Eu já uso o BlazeDS para fazer a integração com Java, mas como passaria a imagem do banco para o flex? você tem algum exemplo ou link?
[MSN]
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

Leia sebre a classe FileReference. Ela possui o método browse, através do qual o usuário escolhe a imagem a ser feito o upload e possui um método upload para fazer o upload para o servidor. Aí basta vc fazer a lógica de salvamento no mesmo. Depois basta vc chamar uma classe remota com ByteArray e mostar sua mensagem no cliente. Então leia sobre FileReference que vc vai achar a resposta.

[]s

Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
Rovides
Thread.start()

Membro desde: 20/06/2010 01:42:59
Mensagens: 33
Localização: Osasco
Offline

Sim tenho sim !
O Codigo esta no trampo, da pra aguentar ate 4º feira?
hueiaueha

Mas pra adiantar ... era algo assim


Isto me retornaria uma Stringona , que seria minha imagem, eu salvo esta string no banco.
E para transforma-la em imagem novamente eu uso o base64Decoder funciona numa boa...

Esta foi a solução encontrada naquele momento...

Aguenta ate quarta que eu te mando o exemplo completinho...

vlww
(já morei em ourinhos eim !)

The Rovid's !
[Yahoo!] [MSN]
gui-jac
Debugger

Membro desde: 14/10/2007 12:03:38
Mensagens: 70
Localização: Ourinhos
Offline

opa......maravilha, aguardo ae quando você puder postar, vai ser de grande ajuda.

Ah, tu morou aqui em Ourinhos....legal, onde?.Moro aqui a 5 anos.....próximo ao Fórum.


falow.
[MSN]
Rovides
Thread.start()

Membro desde: 20/06/2010 01:42:59
Mensagens: 33
Localização: Osasco
Offline

Cara MIL DESCULPAS !!
NAO DEU MESMO para enviar antes...:p

segue


Este metodo te retorna um Stringão, da imagem ja convertida (p_Imagem = minha imagem ja carregada)
no MEU caso estou salvando esta string no banco...
Para retorna-lo a consulta é feita normalmente.. Depois pego esta Stringona de volta e trato ela



Foi uma saida..funciona numa boa MAS acontece que o sistema esta sendo migrado pra .NET(WinForm). Como estou em outro projeto o pessoal esta apanhando um pouco para arrumar um geito de ter as imagens de volta...mas..TA FUNCIONANDO !
Cara me lembro que na epoca foi a saida que encontramos...=/
Se souber outra posta ai.

Espero que isso ajude eu sei que é muito foda encontrar algo na net sobre isso.

FLWW


This message was edited 1 time. Last update was at 16/10/2010 01:12:40


The Rovid's !
[Yahoo!] [MSN]
gui-jac
Debugger

Membro desde: 14/10/2007 12:03:38
Mensagens: 70
Localização: Ourinhos
Offline

Ah, tranquilo cara......
Eu consegui aqui de uma outra maneira, vou postar aqui como ficou.Seguinte:

Na minha classe de persitencia ( Usuario ), tenho um trecho de código assim:



Onde o atributo binariosImagem, que armazenará a imagem, é do tipo byte.Após o hibernate criar as tabelas precisei modificar o tipo do campo binariosImagem para MEDIUMBLOB.

Na minha classe controlador, o método que faz a gravação ficou assim:




Ainda na classe controlador, tenho um métod responsável por buscar um determinado usuário e devolver isto em um List para a tela mxml




Na minha tela, utilizo um RemoteObject para acessar os métodos do controlador.Nela, na parte de upload, fiz tudo o que é mostrado na vídeo aula postada pelo Rovides, e adicionei a linha que aciona o método do controlador que faz a gravação:



Possuo também na tela, um método resposável pelo carregamento dos dados de um usuário em um grid



Neste caso, a variável listagem é um ArrayCollection [Bindable] , tenho um DataGrid que aponta para esta variável.



E por último ( ufa! ), tenho um componente Image que "aponta" para a linha selecionada do DataGrid.





Bom pessoal, é isto, esta foi a solução que encontrei e compartilho-a com vocês.Espero que isso ajude mais alguém.E agradeço aí ao Rovides e ao renzonuccitelli pela colaboração.Valeu!!!
[MSN]
Rovides
Thread.start()

Membro desde: 20/06/2010 01:42:59
Mensagens: 33
Localização: Osasco
Offline

MUIITO BOM !
valew

This message was edited 2 times. Last update was at 17/10/2010 11:05:50


The Rovid's !
[Yahoo!] [MSN]
Daniel T.S
What is classpath?

Membro desde: 28/11/2011 20:13:36
Mensagens: 9
Offline

Rovides wrote:Cara MIL DESCULPAS !!
NAO DEU MESMO para enviar antes...:p

segue


Este metodo te retorna um Stringão, da imagem ja convertida (p_Imagem = minha imagem ja carregada)
no MEU caso estou salvando esta string no banco...
Para retorna-lo a consulta é feita normalmente.. Depois pego esta Stringona de volta e trato ela



Foi uma saida..funciona numa boa MAS acontece que o sistema esta sendo migrado pra .NET(WinForm). Como estou em outro projeto o pessoal esta apanhando um pouco para arrumar um geito de ter as imagens de volta...mas..TA FUNCIONANDO !
Cara me lembro que na epoca foi a saida que encontramos...=/
Se souber outra posta ai.

Espero que isso ajude eu sei que é muito foda encontrar algo na net sobre isso.

FLWW




Cara tem como dar um @embede na imagem que está no byteArray?
pq tenho uma aplicação que imprime uma imagem recuperada por esse método, só que na visualização da impressão ela não aparece, mas na impressão propriamente dita ela está lá.
Me ajuda aí.
Desde já Agradeço.
Rovides
Thread.start()

Membro desde: 20/06/2010 01:42:59
Mensagens: 33
Localização: Osasco
Offline

Cara, nao vejo nenhuma forma de fazer com o @Embed("....") a no ser que voce escreva o arquivo fisico em uma pasta sugestiva, e coloque no @Embed o caminho da imagem que foi gerada.


MAS NAO RECOMENDO USAR ASSIM (na verdade nem sei se fununcia, rs)

Até


The Rovid's !
[Yahoo!] [MSN]
Daniel T.S
What is classpath?

Membro desde: 28/11/2011 20:13:36
Mensagens: 9
Offline

Daniel T.S wrote:
Rovides wrote:Cara MIL DESCULPAS !!
NAO DEU MESMO para enviar antes...:p

segue


Este metodo te retorna um Stringão, da imagem ja convertida (p_Imagem = minha imagem ja carregada)
no MEU caso estou salvando esta string no banco...
Para retorna-lo a consulta é feita normalmente.. Depois pego esta Stringona de volta e trato ela



Foi uma saida..funciona numa boa MAS acontece que o sistema esta sendo migrado pra .NET(WinForm). Como estou em outro projeto o pessoal esta apanhando um pouco para arrumar um geito de ter as imagens de volta...mas..TA FUNCIONANDO !
Cara me lembro que na epoca foi a saida que encontramos...=/
Se souber outra posta ai.

Espero que isso ajude eu sei que é muito foda encontrar algo na net sobre isso.

FLWW




Cara tem como dar um @embede na imagem que está no byteArray?
pq tenho uma aplicação que imprime uma imagem recuperada por esse método, só que na visualização da impressão ela não aparece, mas na impressão propriamente dita ela está lá.
Me ajuda aí.
Desde já Agradeço.


Alguém aí sabe resolver esse problema?
Agradeço Muito.
Rovides
Thread.start()

Membro desde: 20/06/2010 01:42:59
Mensagens: 33
Localização: Osasco
Offline

Trata-se de um relatório?

The Rovid's !
[Yahoo!] [MSN]
 
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team