Retornar imagem do banco de Dados
29/08/2012 01:09
0
Pessoal,

estou salvando algumas imagens no banco de dados e ao migrar para o Grails 2.1.0 foi instalado o resource plugin que impede que as tags <img> retornem os valores antes meu código era assim:

<img src="/sistema/usuario/imagemPessoal/${attrs.id}"/>


Possuindo como action imagemPessoal o seguinte código:

def imagemPessoal = {
if (params.id){
def pessoalInstance = Pessoal.get(params.id)
if (pessoalInstance){
response.outputStream << pessoalInstance.fotoPerfil
}

}

}


E funcionava de boa com esse código acima, a imagem aparecia normal. Porém o plugin 'Resource' não permite que a imagem apareça, daí tentei adaptar para o código:

out << """
<r:img uri="/sistema/usuario/imagemPessoal/${attrs.id}"/>
"""


e não funcionou. Tentei alterar para a tag <g:img> e também não funcionou.

Alguém saberia me dizer como faço para essa imagem aparecer?
Tags: img, resources, r:img


0
Olá, Ilmon.

amigo, como assim o Resources Plugin não deixou? Deu alguma mensagem de erro? Já fiz algo parecido no Grails 2.0 e funcionou sem problema.


0
E ai José,

nenhuma mensagem simplesmente não mostrou a imagem. ja tentei alterar o <img> para <r:img> e para <g:img> e não funcionou. Acho que deve haver alguma questão no resources que não conheço.

Conta sua experiência ai, o que vc fez pra funcionar?
31/08/2012 18:39


0
Amigo, não fiz nada demais. Apenas criei o método no controller e usei.
Acho que a única diferença foi fazer
response.contentType='image/jpeg'

Antes do response.outputStream ....

Sugestão: tenta mudar tua tag <img> para algo como

<img src="${createLink(controller:'usuario, action:'imagemPessoal',id:attrs.id)}"/>


Se quando testar não funcionar, peça pra ver o código fonte e veja se a URL da imagem está correta. Talvez falte o "id", porque não sei bem o que é esse teu "attrs.id".




0
Jose,

funcionou perfeitamente. Nem precisou da linha:

response.contentType='image/jpeg'


Apenas segui sua dica e alterei a linha img para:

<img src="${createLink(controller:'usuario, action:'imagemPessoal',id:attrs.id)}"/>


Agora o estranho é o seguinte, antes de alterar eu via o mesmo link da imagem, porém ela não era mostrada. Agora, seguindo seu conselho, o link permanece o mesmo porém funcionou normalmente.

Explicar isso é que é estranho uma vez que o modelo antigo funcionada e parou de funcionar com a migração para o 2.1.0 e agora usando o createlink voultou a funcionar.

mais uma vez, valeu pela ajuda José. Obrigado mesmo.

03/09/2012 15:33



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto