Puedes usar la descarga por streaming (consume memoria, usa menos) o ir directamente al archivo.
<%
Const USE_STREAM = 0 '0. Descargar sin transmisión (Adodb.Stream) 1. Descargar con transmisión
Const ALLOW_FILE_EXT = "rar,zip,chm,doc,xls,swf,mp3,gif,jpg,jpeg,png,bmp" 'Permitir la extensión del archivo descargado para evitar que se descargue el código fuente
Dim sDownFilePath 'Ruta de descarga del archivo
sDownFilePath = Recortar(Solicitud("FilePath"))
'O obtener la ruta del archivo de la base de datos según el ID del archivo pasado
' Si sDownFilePath es una ruta absoluta, asegúrese de convertir sDownFilePath en una ruta relativa a este archivo'sDownFilePath
= "focus.swf"
Llame a
la función DownloadFile(sDownFilePath) DownloadFile (s_DownFilePath)
'Determinar si se pasa el nombre del archivo
Si IsNull(s_DownFilePath) = True o Trim(s_DownFilePath) = "" Entonces
OutputErr "Error: primero determine el archivo a descargar, la descarga falló"
End If
'Determinar si la extensión es legal
Dims_FileExt
s_FileExt = Medio(s_DownFilePath, InstrRev(s_DownFilePath, ".")+1)
Si InStr("," & ALLOW_FILE_EXT & ",", "," & s_FileExt & ","") <= 0 Entonces
OutputErr "Error: No se permite descargar el tipo de archivo (" & s_FileExt & ") y la descarga falló"
Terminar si
s_DownFilePath = Reemplazar(s_DownFilePath, "", "/")
'Por razones de seguridad, la descarga de archivos está prohibida en algunos directorios y se maneja aquí.
'
'Compruebe si el servidor admite fso
tenue o_Fso
En caso de error Continuar siguiente
Establecer o_Fso = Server.CreateObject("Scripting.FileSystemObject")
Si Número de error <> 0 Entonces
Err.Borrar
OutputErr "Error: el servidor no admite el componente fso y la descarga falló"
End If
'Obtener nombre de archivo, tamaño de archivo
Dims_FileMapPath
Dim o_File, s_FileName, n_FileLength
s_FileMapPath = Servidor.MapPath(s_DownFilePath)
Si (o_Fso.FileExists(s_FileMapPath)) = Verdadero entonces
Establecer o_File = o_Fso.GetFile(s_FileMapPath)
s_FileName = o_File.Name
n_FileLength = o_File.Size
o_Archivo.Cerrar
Demás
OutputErr "Error: el archivo no existe, la descarga falló"
Terminar si
Set o_Fso = Nothing
'Determina si el tamaño del archivo descargado excede el límite
'
'Si no se descarga por stream, vaya directamente al archivo
Si USE_STREAM = 0 Entonces
Respuesta.Redirect sDownFilePath
Respuesta.fin
End If
'Detecta si el servidor admite Adodb.Stream
En caso de error Continuar siguiente
Establecer o_Stream = Server.CreateObject("Adodb.Stream")
Si Número de error <> 0 Entonces
Err.Borrar
OutputErr "Error: el servidor no admite el componente Adodb.Stream y la descarga falló"
Finalizar si
o_Stream.Tyep = 1
o_Stream.Open
o_Stream.LoadFromFile s_FileMapPath
Response.Buffer = Verdadero
Respuesta.Borrar
Response.AddHeader "Disposición de contenido", "adjunto; nombre de archivo=" & s_FileName
Response.AddHeader "Contenido-Longitud", n_FileLength
Respuesta.CharSet = "UTF-8"
Response.ContentType = "aplicación/flujo de octeto"
Respuesta.BinaryWrite o_Stream.Read
Respuesta.Flush
o_Stream.Close
Establecer o_Stream = Nada
Función final
Sub OutputErr(s_ErrMsg)
Respuesta.Escribir "<font color=red>" & s_ErrMsg & "</font>"
Respuesta.Fin
Fin Sub
%>
http://www.cnblogs.com/jiny-z/archive/2006/08/29/489102.html