Originalarbeit: möglich_Y, heruntergeladen von Times Classroom.
Geben Sie direkt den URL-Pfad einer DOC-, XLS- oder JPG-Datei in die Adressleiste des Browsers ein und die Datei wird direkt im Browser angezeigt. In vielen Fällen hoffen wir, den Benutzern direkt eine Download-Eingabeaufforderung zum Herunterladen anzuzeigen. Hier gibt es zwei Methoden:
1. Richten Sie die IIS- und Kartensuffixe Ihres Servers ein, z. B. doc
2. Legen Sie den Inhaltstyp beim Senden an den Client fest.
Methode 2 wird unten ausführlich erläutert
<%.
Response.Buffer = true
Antwort.
Dunkle URL
löschen
Dimmen Sie fso,fl,flsize
dimDname
Dimmen Sie objStream,ContentType,flName,isre,url1
'********************************************* wird beim Aufruf der Download-Datei übergeben Name
Dname=trim(request("n"))
'************************************************** * ****************
Wenn Dname<>"" Dann
'******************************Serververzeichnis, in dem heruntergeladene Dateien gespeichert werden
url=server.MapPath("/")&""&Dname
'************************************************** * *
End If
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Setze fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setze fl=Nichts
Setze fso=Nothing
%>
<%
Setze objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile-URL
Fall auswählen lcase(Right(flName, 4))
Fall „.asf“
ContentType = "video/x-ms-asf"
Fall „.avi“
ContentType = "video/avi"
Fall „.doc“
ContentType = „application/msword“
Fall „.zip“
ContentType = „application/zip“
Fall „.xls“
ContentType = „application/vnd.ms-excel“
Fall „.gif“
ContentType = "image/gif"
Fall „.jpg“, „jpeg“
ContentType = "image/jpeg"
Fall „.wav“
ContentType = "audio/wav"
Fall „.mp3“
ContentType = "audio/mpeg3"
Fall „.mpg“, „mpeg“
ContentType = „video/mpeg“
Fall „.rtf“
ContentType = „application/rtf“
Fall „.htm“, „html“
ContentType = "text/html"
Fall „.txt“
ContentType = "text/plain"
Fall anders
ContentType = „application/octet-stream“
Endauswahl
Response.AddHeader „Content-Disposition“, „attachment; filename=" & flName
Response.AddHeader „Content-Length“, flsize
Response.Charset = „UTF-8“
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Response.Flush
Antwort.Clear()
objStream.Close
Set objStream = Nothing
%>
Speichern Sie Folgendes in download.asp und dann können Sie <a herf=" http://www.downcodes.com/download.asp?n=file.doc">download!</ a > verwenden Datei.doc im selben Verzeichnis herunterladen!
Hier besteht jedoch das Problem, dass es unsicher ist, den Datei.doc-Pfad direkt in die URL zu schreiben. Daher sollte die Lösung darin bestehen, den Datei.doc-Pfad nach der Suche in der Datenbank zu speichern In der Datenbank können Sie den Pfad abrufen,
wenn Sie am Anfang dieses Programms ein Urteil hinzufügen:
if instr(Request.ServerVariables("HTTP_REFERER"),"http://your domain name")=0 then
Antwort.Ende
end if
kann sehr gut verhindern, dass andere Links stehlen.