Hacer un hipervínculo para descargar un archivo empacado (zip)

En anteriores herramientas web estuvimos usando un hipervínculo de html para hacer descargas de archivos, nunca tuvimos problemas con archivos de texto tipo CSV.

Como mencionaba en un artículo pasado para evitar la descarga de tantos archivos usamos la librería que tiene .NET para la compresión de archivos, y seguimos el mismo proceso, poner una etiqueta HTML del tipo Ancla (A), sin embargo el archivo no descargó.

Acudimos a San Google que nos dio una solución https://geeks.ms/sergiotarrillo/2007/03/16/forzar-la-descarga-de-archivos-en-nuestros-sitios-web/

Sin embargo al implementarla el archivo se nombraba con el mismo nombre que la página de descarga.

Fue entonces que recibimos la asesoría de la ingeniero Ana Yessica Espinosa que nos sugirió el uso de los controles asp.net llamado HyperLink – Santo remedio.

Aquí la presentación de ambas soluciones.

La del Blog…

La implementamos usando un botón de descarga que redireccioné a la página de descarga (le llamé Download.aspx)

protected void BtDescargar_Click(object sender, EventArgs e)
{

Response.Redirect(“Download.aspx”);

}

Y una segunda página para descargar, en esta se programa el evento Load

protected void Page_Load(object sender, EventArgs e)
{

String path = Server.MapPath(“~//MiEmpacado.zip”);
System.IO.FileInfo toDownload =
new System.IO.FileInfo(path);
Response.Clear();
Response.AddHeader(“Content – Disposition”,
“attachment; filename =” + toDownload.Name);
Response.AddHeader(“Content – Length”, toDownload.Length.ToString());
Response.ContentType = “application / octet – stream”;
Response.WriteFile(path);
Response.End();

}

Y con HyperLink, pues así de fácil y descarga el archivo con su mismo nombre, sin embargo el archivo tiene que ser cargado en tiempo de diseño y ser agregado de forma manual en el sitio y proyecto de ASP.NET, con ésto el archivo se descarga en la carpeta de Descargas en el caso de Windows.

Y dando clic en el hipervínculo se realiza la descarga.

El único detalle es que el archivo debe existir en el servidor, ya que si es creado dinámicamente con la opción del ZipFile, simplemente el archivo no se descarga.

Seguimos leyéndonos en otro artículo.

Profesor Miguel Araujo.

 

 

 

 

Deja un comentario