Qual a melhor maneira para zipar um anexo usando Spring para enviar email?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Tenho o seguinte método para enviar email pelo Spring, preciso zipar o anexo para enviar o email, qual a melhor maneira para pegar esse anexo que chega em um array de byte e zipar, alguém já implementou algo parecido?

Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Acho que você pode começar aqui pelo proprio GUJ

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

O metodo para zipar eu conheço porem minha aplicação é web, não estou trabalhando diretamente com o arquivo e sim com seu array de bytes.

O metodo addAttachment do Spring aceita um InputStreamSource ou um File.

Meu caso é o seguinte tem upload feito com o JSF usando a classe:



O JSF armazena esse arquivo, talvez em uma pasta temporaria não tem existe um local definido na aplicação, com isso chamo o metodo que envia o email, passando o array de bytes para o metodo addAttachment do Spring, talvez precise zipar esse arquivo na hora que é feito o upload, se tivesse o arquivo fisicamente simplesmente zipava e passava para o addAttachment que aceita um File.

Alguém tem uma luz?






This message was edited 1 time. Last update was at 15/05/2009 15:01:54

Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

Oi Pedrosa,

Acho que um bom caminho é usar a ZipOutputStream para zipar o array de bytes:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/zip/ZipOutputStream.html

Combina ela com a ByteArrayOutputStream para ter um array de bytes zipado como saída:

http://java.sun.com/j2se/1.5.0/docs/api/java/io/ByteArrayOutputStream.html

Boa sorte!

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
celso.martins
Virtual Machine Man
[Avatar]

Membro desde: 19/06/2006 13:54:23
Mensagens: 699
Localização: Rio de Janeiro
Offline

Há um tempo atrás, postei isso aqui.

Sempre que precisei, funcionou bem...

Alguém não recomenda o uso? Por que?

Obrigado.

Hoje melhor que ontem e pior que amanhã.

Desenvolvimento Psicopata - Qualidade Total
Twitter
Infoblogs - A vitrine do seu blog
[Email] [WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

O metodo para Zipar um array de bytes consegui, mas não gera o zip corretamente:


Conforme o Kung disse preciso mesclar com a classe ZipOutputStream, alguma idéia para adaptar esse metodo?

This message was edited 2 times. Last update was at 15/05/2009 09:36:56

von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Pedrosa wrote:O metodo para Zipar um array de bytes consegui, mas não gera o zip corretamente

Como assim não gera corretamente?

Flw!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Por que na verdade esse método compacta um array de bytes e não gera um zip em si, mas todos os exemplos que tenho de zipar são com arquivos existentes e não com Array de bytes.
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

Mas o array de bytes resultante do processo é o zip.

Eu só sugiro que você tente primeiro com a ZipOutputStream, no lugar da Deflate.

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Esta assim agora:



Nas linhas


Não compilam pois precisam receber um FileInputStream e um File, o que preciso mudar para funcionar?
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Na verdade o metodo addAttachment do Spring recebe um File ou ImputStreamSource, a classe da aplicação InputStreamResourceImpl implementa a InputStreamSource, a briga continua o que devo mudar nesse metodo abaixo para mandar um array de bytes zipado?

This message was edited 1 time. Last update was at 15/05/2009 15:44:36

Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Alguém tem ideia do que posso fazer aqui?
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team