Download através do response.outputStream << arquivo
11/03/2010 00:00
0
Olá Galera, está acontecendo uma marmota na minha aplicação que roda no servidor!!!
É o seguinte, tenho uma aplicação com um gerenciador de arquivos (upload e download) que funciona perfeitamente na minha máquina local. Ou seja, ao realizar, por exemplo o download de um arquivo de imagem - exibe a imagem no próprio mozila, se eu baixar um PDF - exiber a janelinha com as opções de salvar ou abrir arquivo, se baixar um arquivo .bin - exibi a opção de baixar o arquivo! A aplicação funciona normalmente na minha máquina local.
O problema ocorre com a aplicação rodando no meu servidor, pois TODOS OS ARQUIVOS, VINDO DO BANCO DE DADOS, QUE FAÇO DOWNLOAD SÃO EXIBIDOS NO MOZILLA, por exemplo, se faço o download de um arquivo .EXE - exibi o conteúdo binário(textos e códigos malucos) no navergador, ao inves de exibir a opção de baixar o arquivo!

Estou usando o método que consta na documentação do Grails:

def download = {
def documento = Arquivo.get( params.id )
byte[] imagem = documento.arquivo
response.outputStream << imagem

}


Alguem sabe porquê acontece esse porblema na aplicação no meu servidor?

Obrigado!
Tags: Grails


0
Opa.

Você vai ter de alterar o cabeçalho http de envio definindo o tipo: assim o navegador não pensará que é um arquivo textual.

Simples:
coloque este comando antes de fazer o redirecionamento do stream de bytes:
response.contentType = &quot;application/octet-stream&quot;


0
Ok Kiko! Obrigado pela força!

Vou implementar esta linha!

Falou!
12/03/2010 00:00


0
Ok Kiko, testado deu certo!

Ei você tem idéai como pegar o nome do arquivo no banco para salvar quando realizar download? Atualmente, está fazendo o download com o Id do arquino no banco!

Valeu!
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
12/03/2010 00:00


0
Eu sei que você tem que utilizar o Attachment, mas seguindo a logica que o kikolobo fez ali seria algo assim:

response.contentDisposition= &quot;attachment;filename=\&quot; ${NOMEDOARQUIVO}\&quot;&quot;

tente colocar no nome do arquivo junto com a extensão, ai quando aparecer a caixa para download não aparece um ícone em branco!
http&#58;//infoblogs.com.br/view.action?contentId=13245&amp;Grails-Controller-para-download-de-arquivo-em-diretorio.html
12/03/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