Exportar arquivo .txt ou outra extensão, alguém sabe como fazer?
26/07/2013 04:17
0
Pessoal, sou novo em grails e já implementei um pequeno sistema para um cliente e funciona maravilhosamente bem.

Hoje comecei minhas pesquisas para um segundo sistema usando o grails. Aí me deparei com um problema.

Em dois momentos vou precisar exportar um arquivo específico com o sistema.

Vou explicar melhor. Preciso gerar boletos de cobrança para o Bradesco, o boleto registrado
necessita de um arquivo que será importado pelo site do banco, esse arquivo tem um layout específico, sua extensão é .REM
Outra situação é o arquivo do SEFIP, tenho um programa, que fiz em delphi7, que exporta este arquivo pedido e gostaria de fazer o mesmo com grails.(SEFIP.RE)

Minha dúvida não é quanto aos leiautes e sim como montar e gerar (download) um arquivo texto e poder alterar sua extensão.

Exemplo do arquivo( Na linha 1, do campo 1 até 55 razão da empresa, do campo 56 até 100 endereço...), depois de montar este leiaute alterar a extensão. Seria + ou menos isso.

Se alguém poder me ajudar agradeço.
Tags: exportar, arquivo, txt, grails, sefip, boleto


1
Oi Reinaldo,

quanto à geração, é exatamente como você faria em Java. Aliás, se tiver código Java pra gerar isto, basta copíá-lo para seu projeto Grails (pasta src/java) ou então fornecer o seu arquivo jar (para a pasta lib do seu projeto) e executá-lo de dentro das suas classes de serviço ou controlador.

No mais, a implementação é exatamente como no Java.
Com relação ao download por parte do cliente, basta que use código similar ao abaixo no seu controlador.


// se for proveniente de uma rquivo
ef file = new File(params.fileDir)
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}")

response.outputStream << file.newInputStream()



1
Se você gerou teu arquivo txt com um array de bytes, o código ficaria +- assim:

def conteudo = //você gerando esse byte[]
def nomeArq = "nome-que-quer-no-download.txt"
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment;filename=${nomeArq}")

response.outputStream << conteudo


0
Obrigado, Kiko e Yoshiriro. Vou testar e posto aqui. Pode ser útil à outros. Abs.
26/07/2013 17:22


0
Obrigado, Kiko e Yoshiriro. Vou testar e posto aqui. Pode ser útil à outros. Abs.
06/03/2014 06:20



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