Como incluir uma imagem no banco Oracle usando Grails
30/07/2011 11:57
0
Amigos,

Preciso fazer um upload de uma imagem para um campo no oracle.
Fiz no postgres e funcionou perfeitamente com byte[], porém com o oracle não funcionou. Alguém pode me ajudar nisso?

Abraços,

Ronny
Tags: oracle, upload, grails, imagem


0
Bom dia.
Eu uso dessa forma. Ela funciona para Oracle, MySql e SQLServer. Todos testados.
Abaixo está a rotina na sua essência. Você deve modificar para melhor te atender.

[if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
CommonsMultipartFile file = (CommonsMultipartFile)multiRequest.getFile("Filedata");
if (!file?.empty) {
nomearquivo = file.getOriginalFilename()
upload = new Upload(nomearquivo:nomearquivo,arquivoType:file.getContentType(),tamanho:file.getSize(),chunksize:chunksize,flagobjword:false)
upload.id = geradorID()
instaciaObjeto."addTo${Mapfield}"(upload)
instaciaObjeto.save()
is = file.getInputStream()
byte[] chunk
int i = -1

int j = file.getSize()
if(j >= chunksize){
chunk = new byte[chunksize]
}else{
chunk = new byte[j]
}
int h = 0
while((i = is.read(chunk)) !=-1){
if (i==0)
{
return
}
uploadpiece = new Uploadpiece(arquivo:chunk,ordem:h)
uploadpiece.id = geradorID()
upload.addToUploadpices(uploadpiece).save()
h++
j = j-i
if(j >= chunksize){
chunk = new byte[chunksize]
}else{
chunk = new byte[j]
}
}
}
}]

Abç.
01/08/2011 11:22


0
Dica:

considere não incluir as imagens no banco de dados, mas sim como arquivos na rede. Assim você inclui apenas a referência ao arquivo no Banco de Dados.

Costuma evitar uma infinidade de problemas.



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