Œuvre originale : possible_Y, téléchargée depuis Times Classroom
Entrez directement le chemin URL d'un fichier doc, xls ou jpg dans la barre d'adresse du navigateur, et le fichier sera affiché directement dans le navigateur. Dans de nombreux cas, nous espérons afficher directement une boîte de dialogue d'invite de téléchargement permettant aux utilisateurs de télécharger. Que devons-nous faire ? Il existe deux méthodes ici :
1. Configurez les suffixes iis et map de votre serveur tels que doc
2. Définissez son type de contenu lors de l'envoi au client.
La méthode 2 est expliquée en détail ci-dessous
<%.
Réponse.Buffer = vrai
Réponse.Effacer
l'URL sombre
Dim fso,fl,fltaille
dimDname
Dim objStream, ContentType, flName, isre, url1
'****************************************** est transmis lors de l'appel du fichier de téléchargement nom
Nom=trim(requête("n"))
'************************************************ * ****************
Si Nom<>"" Alors
'******************************Répertoire du serveur où sont stockés les fichiers téléchargés
url=server.MapPath("/")&""&Dname
'************************************************ * *
Fin si
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Définir fl=fso.getfile(url)
flsize=fl.taille
flName=fl.nom
Définir fl=Rien
Définir fso=Rien
%>
<%
Définir objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
URL objStream.LoadFromFile
Sélectionnez Case lcase(Right(flName, 4))
Cas ".asf"
ContentType = "vidéo/x-ms-asf"
Cas ".avi"
ContentType = "vidéo/avi"
Cas ".doc"
ContentType = "application/msword"
Cas ".zip"
ContentType = "application/zip"
Cas ".xls"
ContentType = "application/vnd.ms-excel"
Cas ".gif"
Type de contenu = "image/gif"
Cas ".jpg", "jpeg"
Type de contenu = "image/jpeg"
Cas ".wav"
Type de contenu = "audio/wav"
Cas ".mp3"
Type de contenu = "audio/mpeg3"
Cas ".mpg", "mpeg"
ContentType = "vidéo/mpeg"
Cas ".rtf"
ContentType = "application/rtf"
Cas ".htm", "html"
ContentType = "texte/html"
Cas ".txt"
ContentType = "texte/plain"
Autre cas
ContentType = "application/octet-stream"
Fin de la sélection
Response.AddHeader "Content-Disposition", "pièce jointe ; filename=" & flName
Response.AddHeader "Content-Length", flsize
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Réponse.Flush
réponse.Clear()
objStream.Fermer
Définissez objStream = Nothing
%>
Enregistrez ce qui suit dans download.asp et vous pourrez ensuite utiliser <a herf=" http://www.downcodes.com/download.asp?n=file.doc">download !</ a > Pour télécharger le fichier.doc dans le même répertoire !
Mais il y a un problème ici : il n'est pas sûr d'écrire le chemin du fichier.doc directement dans l'URL, la solution devrait donc être de sauvegarder le chemin du fichier.doc dans la base de données après la recherche. la base de données, vous pouvez obtenir le chemin.
Si vous ajoutez un jugement au début de ce programme :
if instr(Request.ServerVariables("HTTP_REFERER"),"http://your domain name")=0 then
Réponse.Fin
end if
peut très bien empêcher les autres de voler des liens.