29 de abr. de 2010

Download de Arquivos com .aspx

file_download

No ASP.NET MVC é uma beleza disponibilizar algum arquivo que esteja armazenado no banco de dados, ou algum arquivo gerado pelo aplicativo, para download. Basta apenas que no retorno da action você retorne um File().

No Web Forms é necessário alterar alguns detalhes do Response. Acompanhe:

var fi = new FileInfo(arquivo);
var fs = new FileStream(arquivo, FileMode.Open, FileAccess.Read);
var bytes = new BinaryReader(fs).ReadBytes((int)fi.Length);


Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=arquivo.xls");
Response.BinaryWrite(bytes);


fs.Close();
fi.Delete();
fs = null;
fi = null;


Response.End();

Neste exemplo é disponibilizado um arquivo do Excel para download. Bastando colocar o Código acima na Page_Load().

Um ponto importante a se prestar atenção é no header, pois sem ele o usuário faria download de um arquivo .aspx e não de um xls.

obs: No MVC também é necessário informar o Content Type.

image

0 comentários: