Arquivo Temporário
24/08/2010 00:00
0
olá.

como fazer para que, ao gerar um arquivo como por exemplo um pdf, que seja gerado em uma pasta no computador do usuário?

tem como?

eu estou gerando um arquivo pdf mas fica no computador que está instalado a aplicação do grails.

teria como gerar diretamente no computador do usuário?

assim não ficaria enchendo de arquivos no computador onde está a aplicação.

eu tentei usar o comando delete no objeto file mas depois que o comando response.outputStream << pdfCont.newInputStream() é executado, nenhum comando é mais executado, então não funciona colocar o pdfCont.delete() depois disso!

alguém teria uma solução inteligente pra isso? =]

vlw
Tags: Grails


0
Criar diretamente no pc do usuário eu não sei se você conseguiria, mas o que poderia ser feito é aparecer uma mensagem para o usuário fazer o download do pdf gerado utilizando o response.outputStream , não seria melhor?
24/08/2010 00:00


0
é isso q estou fazendo.

só queria saber de uma forma que desse para apagar o arquivo assim que o usuário fizesse o download (após o response.outputStream)

imagine uns 50 usuários gerando arquivos a cada momento... vai encher de arquivos no servidor.

eu fiz uma tela onde da para apagar os arquivos desse diretório, mas isso teria que ser feito todo dia.

queria saber se tinha uma forma mais interessante de fazer isso, apagar o arquivo assim que o usuário fizesse o download...
24/08/2010 00:00


0
Por motivos óbvios, é impossível vc gravar ou apagar alguma coisa do computador do usuário.

Mas pro usuário fazer o download do arquivo vc não precisa gravar o arquivo no servidor. Se você gerar o arquivo na hora que o usuário pede, é só joga-lo diretamente ou outputstream da página em vez de gravar no disco.


byte[] pdf = gerarPdf()

response.contentType = &quot;application/pdf&quot;
response.setHeader( &quot;Content-Disposition&quot;, &quot;attachment; filename=arquivo.pdf&quot;)
response.outputStream << pdf


[]'s

Rodrigo C. A.
25/08/2010 00:00


0
estou usando o jasper pra gerar um relatório e ele gera o arquivo físico, em disco.

como fazer isso que vc disse, gerar o arquivo sem ser no disco?

por exemplo, esse seu método gerarPdf(), ele não gera o arquivo em disco?

tem como gerar em memória? pelo menos foi isso que entendi...
25/08/2010 00:00


0
Sim, a idéia é gerar o arquivo na memória e mandar pro outputStream.

Eu usei muito pouco Jasper e já tem bastante tempo pra te falar como fazer isso, mas tenho certeza que já gerei o relatório em memória. Uma rápida pesquisa no Google deve resolver.

Eu sei que tem um plugin do Grails pra Jasper, dei uma olhada um tempo atrás e me pareceu bom. Vc pode tentar ver se te ajuda.

<!-- m --><a class="postlink" href="http://www.grails.org/plugin/jasper">http://www.grails.org/plugin/jasper</a><!-- m -->

[]'s

Rodrigo Auler
25/08/2010 00:00



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