¿Alguna vez te has sentido frustrado cuando accedes a un sitio web y hay documentos, imágenes y otro contenido disponible para descargar y quieres hacer exactamente eso, descárgalo! En cambio, cuando hace clic en un elemento de contenido, se abre en su navegador. Me enfrenté a este problema durante un proyecto para una compañía médica y necesitaban que sus archivos PDF se descargaran y no se abrieran. Bueno, hay una manera de abrir el cuadro de diálogo Guardar como.

Para este tutorial, asumiremos que los archivos se almacenan localmente en el servidor y no en una base de datos. (Esa es una discusión completamente diferente)

Primero, necesita saber la ubicación de sus archivos. Así que supongamos que sus archivos se encuentran en //yourserver.com/files/filename.ext. Asumiremos que Server.MapPath es "/ files".

Entonces, en este punto, creemos el archivo ASP que controlará la descarga del archivo. Comience creando un nuevo documento en blanco usando NotePad o su editor HTML favorito. Coloque el siguiente código ASP:

<%
'=======================
'Define the names of your functions
'=======================
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'=======================
'Get the actual file name from the URL that is passed to the browser
'=======================
FileName = request.querystring("filename") 'Get the name from the URL
'=======================
'GIVE AN ERROR MESSAGE IF THE URL IS EMPTY
'=======================
if FileName = "" Then
response.write "Filename Not specified."
response.end
end if
'=======================
'prevent access to certain files
'=======================
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
select case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
response.write "You cannot access these file types."
response.end
end select
'=======================
'Start the download process if all is good
'=======================
response.clear
response.contentType = "application/octet-stream"
response.addheader "content-disposition", "attachment; filename=" & FileName
set stream = server.CreateObject("ADODB.Stream")
stream.type = adTypeBinary
stream.open
stream.LoadFromFile Server.MapPath("/files") & FileName
while not stream.EOS
response.BinaryWrite Stream.Read(1024 * 64)
wend
stream.Close
Set stream = Nothing
response.Flush
response.End
%>


Eso es todo por eso. Ahora, guarde y cargue este archivo en su servidor y asígnele el nombre filedownloader.asp

Ahora digamos que el nombre de archivo en su servidor es familytree.pdf

Luego, simplemente pasaría la siguiente URL en su navegador y aparecerá el cuadro de diálogo Guardar archivo como abrir.

//yourserver.com/filedownloader.asp?filename=familytree.pdf

¡Eso es! Entonces deberías ver esto:



Buena suerte y puede mejorar esto utilizando bases de datos y otras funciones interesantes para asegurarse de que los archivos a los que desea que accedan sus usuarios tengan la capacidad de descargarse y no abrirse en su navegador web actual, lo que les permite "permanecer" en su sitio web .

Instrucciones De Vídeo: Quitar el error net framework Windows 10 (Mayo 2024).