Como descargar un archivo con ASP clásico (ASP classic)

Código ASP clásico

Este código en ASP clásico permite la descarga de archivos desde un servidor web a través de un enlace en una página web. La utilidad de esta función puede ser muy útil en sitios web que ofrecen descargas de archivos a los usuarios.

El código funciona de la siguiente manera:

Primero, se comprueba si se ha enviado la variable "descarga" por el método GET. Si se envía, se procede a descargar el archivo. Si no, se muestra un enlace para descargar el archivo.

Si se ha enviado la variable "descarga", se obtiene el nombre del archivo a descargar de la variable "file". El archivo se carga desde la ruta especificada en la variable "carpeta" utilizando el objeto ADODB.Stream. Luego, se establecen las cabeceras HTTP para indicar que el contenido debe ser descargado como un archivo adjunto. Por último, se escribe el contenido del archivo en el objeto de respuesta y se cierra el objeto de flujo.

Para optimizar este código, se podrían realizar las siguientes mejoras:

    En lugar de escribir la ruta de la carpeta en el código, se podría utilizar una constante o variable para almacenarla. De esta manera, si se cambia la ruta en el futuro, solo se tendría que actualizar el valor de la variable.

    Es posible que algunos navegadores no interpreten correctamente la cabecera "Content-Disposition". Para solucionar este problema, se podría utilizar un componente de terceros como ASPSmartUpload para enviar el archivo al cliente.

    El código podría ser más legible y fácil de mantener si se utiliza una función para descargar el archivo en lugar de tener todo el código en el bloque if.


<%
If Not IsEmpty(Request.QueryString("d")) Then
    Dim objStream, archivo, carpeta
    archivo = Request.QueryString("file")
    carpeta = "/public/carpeta/"
    strFileName = carpeta & archivo
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Type = 1
    objStream.Open
    objStream.LoadFromFile Server.MapPath(strFileName)
    Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
    Response.ContentType = "application/octet-stream"
    Response.BinaryWrite objStream.Read
    objStream.Close
    Set objStream = Nothing
Else
    Response.Write "Descargar"
End If
%>

tags:

En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.