Al vincular documentos en IE, si encuentra un documento compatible con OLE, IE llamará automáticamente al programa correspondiente para abrirlo. A veces esta función no es lo que necesitamos, aunque podemos recordarle al usuario que haga clic con el botón derecho del mouse-->. Comando "Guardar destino como" "..." para descargar documentos, pero esto no es muy amigable después de todo. Este artículo describe el uso de los métodos FSO y Stream para implementar la descarga directa de documentos mediante
la página de códigos IE <%@ language=vbscript
.=65001%>
<%
'Se debe ingresar el nombre del archivo
si Solicitud("Nombre de archivo")="" entonces
Response.write "<h1>Error:</h1>¡El nombre de archivo está vacío!<p>"
demás
llamar a descargarArchivo(reemplazar(reemplazar(Solicitud("Nombre de archivo"),"",""),"/",""))
Función descargarArchivo(strFile)
'Asegúrate de tener la última versión de MDAC para que esto funcione.
'obtiene la ruta completa del archivo especificado
strFilename = servidor.MapPath(strFile)
'borrar el buffer
Respuesta.Buffer = Verdadero
Respuesta.Borrar
' crear flujo
Establecer s = Server.CreateObject("ADODB.Stream")
s.Abierto
'Establecer como binario
s.Tipo = 1
' cargar en el archivo
en caso de error reanudar siguiente
'verifica que el archivo existe
Establecer fso = Server.CreateObject("Scripting.FileSystemObject")
si no es fso.FileExists(strFilename) entonces
Response.Write("<h1>Error:</h1>"&strFilename&" ¡no existe!<p>")
Respuesta.Fin
terminar si
'obtener la longitud del archivo
Establecer f = fso.GetFile(strFilename)
intFilelength = f.tamaño
s.LoadFromFile(strFilename)
si te equivocas entonces
Response.Write("<h1>Error: </h1>¡Error desconocido!<p>")
Respuesta.Fin
finalizar si
'envía los encabezados a los usuarios Navegar
Response.AddHeader "Disposición de contenido", "attachment; filename="&f.name
Response.AddHeader "Contenido-Longitud", intFilelength
Respuesta.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
' envía el archivo al navegador
Respuesta.BinaryWrite y.Read
Respuesta.Flush
'ordenar
s.Cerrar
Establecer s =
Función de fin
de nada
terminar si
%>