Vous pouvez utiliser le téléchargement en streaming (consommer de la mémoire, utiliser moins) ou accéder directement au fichier.
<%
Const USE_STREAM = 0 '0. Télécharger sans flux (Adodb.Stream) 1. Télécharger avec flux
Const ALLOW_FILE_EXT = "rar,zip,chm,doc,xls,swf,mp3,gif,jpg,jpeg,png,bmp" 'Autoriser l'extension du fichier téléchargé pour empêcher le téléchargement du code source
Dim sDownFilePath 'Chemin de téléchargement du fichier
sDownFilePath = Trim(Requête("FilePath"))
'Ou obtenez le chemin du fichier à partir de la base de données en fonction de l'ID de fichier transmis
' Si sDownFilePath est un chemin absolu, assurez-vous de convertir sDownFilePath en un chemin relatif vers ce fichier'sDownFilePath
= "focus.swf"
Appelez la fonction DownloadFile(sDownFilePath)
DownloadFile (s_DownFilePath )
'Détermine si le nom du fichier est transmis
Si IsNull(s_DownFilePath) = True Ou Trim(s_DownFilePath) = "" Alors
OutputErr "Erreur : déterminez d'abord le fichier à télécharger, le téléchargement a échoué"
End If
'Déterminer si l'extension est légale
Dims_FileExt
s_FileExt = Milieu(s_DownFilePath, InstrRev(s_DownFilePath, ".")+1)
Si InStr("," & ALLOW_FILE_EXT & ",", "," & s_FileExt & ",") <= 0 Alors
OutputErr "Erreur : le type de fichier (" & s_FileExt & ") n'est pas autorisé à être téléchargé et le téléchargement a échoué "
Fin si
s_DownFilePath = Replace(s_DownFilePath, "", "/")
'Pour des raisons de sécurité, le téléchargement de fichiers est interdit dans certains répertoires et est géré ici.
'
'Vérifiez si le serveur prend en charge fso
Dim o_Fso
En cas d'erreur, reprendre ensuite
Définir o_Fso = Server.CreateObject("Scripting.FileSystemObject")
Si Err.Number <> 0 Alors
Err.Effacer
OutputErr "Erreur : le serveur ne prend pas en charge le composant fso et le téléchargement a échoué"
End If
'Obtenir le nom du fichier, la taille du fichier
Dims_FileMapPath
Dim o_File, s_FileName, n_FileLength
s_FileMapPath = Serveur.MapPath(s_DownFilePath)
Si (o_Fso.FileExists(s_FileMapPath)) = True Alors
Définir o_File = o_Fso.GetFile(s_FileMapPath)
s_FileName = o_File.Name
n_FileLength = o_File.Size
o_File.Fermer
Autre
OutputErr "Erreur : le fichier n'existe pas, le téléchargement a échoué"
Fin si
Set o_Fso = Nothing
'Détermine si la taille du fichier téléchargé dépasse la limite
'
'S'il n'est pas téléchargé par stream, allez directement dans le fichier
Si USE_STREAM = 0 Alors
Response.Redirect sDownFilePath
Réponse.end
End If
'Détecter si le serveur prend en charge Adodb.Stream
En cas d'erreur, reprendre ensuite
Définir o_Stream = Server.CreateObject("Adodb.Stream")
Si Err.Number <> 0 Alors
Err.Effacer
OutputErr "Erreur : le serveur ne prend pas en charge le composant Adodb.Stream et le téléchargement a échoué"
Fin si
o_Stream.Tyep = 1
o_Stream.Open
o_Stream.LoadFromFile s_FileMapPath
Response.Buffer = True
Réponse.Effacer
Response.AddHeader "Content-Disposition", "pièce jointe ; filename=" & s_FileName
Response.AddHeader "Content-Length", n_FileLength
Réponse.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
Réponse.BinaryWrite o_Stream.Read
Réponse.Flush
o_Stream.Close
Définir o_Stream = Nothing
End Function
Sub OutputErr(s_ErrMsg)
Réponse.Écrivez "<font color=red>" & s_ErrMsg & "</font>"
Réponse.Fin
Fin du sous
%>
http://www.cnblogs.com/jiny-z/archive/2006/08/29/489102.html