Download de arquivos com ASP.Net
Problema do aluno: Como faço download de um arquivo usando ASP.Net 2005?
Solução: Criei um website que faz o download dos arquivos existentes numa pasta do site. Se, além disso, quiser gravar no banco de dados, pode dar uma olhada nesse post para ver o código. Para upload, veja esse post.
Criei um web site em C#, chamado exemploDownload e, na página Default.aspx, posicionei o controle DropDownList, como na figura abaixo:
Criei, usando o Solution Explorer, uma pasta IMAGES, que conterá os arquivos.
Para o manipular evento Load da Page, criei o seguinte método:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Request.ServerVariables[“APPL_PHYSICAL_PATH”] + @”\IMAGES\”);
System.IO.FileInfo[] fi = di.GetFiles();
DropDownList1.Items.Add(“(escolha uma imagem)”);
foreach (System.IO.FileInfo arquivo in fi)
DropDownList1.Items.Add(arquivo.Name);
}
}
E, para o evento SelectedIndexChanged do DropDownList, criei o seguinte código:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.SelectedIndex != 0)
{
System.IO.FileInfo arquivo = new System.IO.FileInfo(Request.ServerVariables[“APPL_PHYSICAL_PATH”] + @”\IMAGES\” + DropDownList1.SelectedValue);
Response.Clear();
Response.AddHeader(“Content-Disposition”, “attachment; filename=” + arquivo.Name);
Response.AddHeader(“Content-Length”, arquivo.Length.ToString());
Response.ContentType = “application/octet-stream”;|
Response.WriteFile(arquivo.FullName);
Response.End();
}
}