Envio de arquivos com nomes corretos

April 13, 2007

Quando clicamos em um link direto para um arquivo em uma página web, o servidor se encarrega de gerenciar a transmissão dos dados e de gerar o cabeçalho correto para que a transferência se faça corretamente.

Mas muitas vezes, a transmissão do arquivo é executada por um serviço que o desenvolvedor está implementando. Isto acontece muito quando o documento é gerado dinâmicamente pelo servidor a cada requisição. Por exemplo, um serviço que gere um boleto para pagar uma conta. Provavelmente o boleto não está gravado no HD do servidor, mas é criado a cada requisição.

Neste caso, muitas vezes quando queremos salvar o arquivo gerado no HD local, o nome sugerido para o arquivo pelo navegador é o nome do link clicado. Por exemplo: eu clico em www.meuservidor.com/geraboleto.do, peço para salvar o arquivo e o navegador propõe o nome geraboleto.do. Isto pode ser indesejável caso o arquivo deva ter um nome específico.

Para resolver este problema, basta adicionar o header Content-Disposition com valor

“inline; filename=nomedomeuarquivo”

no cabeçalho da resposta antes de enviar o arquivo propriamente dito. A forma de definir o header depende de cada linguagem. Em Java, desenvolvendo com Servlets, o comando seria

response.setHeader(“Content-Disposition”, “inline; filename=teste.doc”);

tags: ,
posted in Desenvolvimento by Miguel Galves

Follow comments via the RSS Feed | Leave a comment | Trackback URL

Leave Your Comment

blog comments powered by Disqus

Switch to our mobile site

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org