Wenn beim Verknüpfen von Dokumenten im IE ein von OLE unterstütztes Dokument gefunden wird, ruft der IE automatisch das entsprechende Programm auf, um es zu öffnen. Manchmal ist diese Funktion nicht das, was wir benötigen, obwohl wir den Benutzer daran erinnern können, mit der rechten Maustaste zu klicken -> „Ziel speichern unter“ „…“-Befehl zum Herunterladen von Dokumenten, aber das ist doch nicht sehr benutzerfreundlich. Dieser Artikel beschreibt die Verwendung von FSO- und Stream-Methoden zum Implementieren des direkten Herunterladens von Dokumenten durch die
Codepage IE <%@ language=vbscript =65001%>
<%
'Dateiname muss eingegeben werden
if Request("Filename")="" then
Response.write „<h1>Fehler:</h1>Dateiname ist leer!<p>“
anders
call downloadFile(replace(replace(Request("Filename"),"",""),"/",""))
Funktion downloadFile(strFile)
' Stellen Sie sicher, dass Sie die neueste MDAC-Version verwenden, damit dies funktioniert
'vollständigen Pfad der angegebenen Datei abrufen
strFilename = server.MapPath(strFile)
' Löschen Sie den Puffer
Response.Buffer = True
Antwort.Klar
' Stream erstellen
Setze s = Server.CreateObject("ADODB.Stream")
s.Offen
' Als binär festlegen
s.Type = 1
' in die Datei laden
Bei Fehler als nächstes fortfahren
' Überprüfen Sie, ob die Datei vorhanden ist
Setze fso = Server.CreateObject("Scripting.FileSystemObject")
wenn nicht fso.FileExists(strFilename), dann
Response.Write("<h1>Fehler:</h1>"&strFilename&" existiert nicht!<p>")
Antwort.Ende
Ende wenn
'Länge der Datei ermitteln
Setze f = fso.GetFile(strFilename)
intFilelength = f.size
s.LoadFromFile(strFilename)
Wenn ich mich irre, dann
Response.Write("<h1>Fehler: </h1>Unbekannter Fehler!<p>")
Antwort.Ende
end if
' Senden Sie die Header an die Benutzer. Durchsuchen
Response.AddHeader „Content-Disposition“, „attachment; filename="&f.name
Response.AddHeader „Content-Length“,intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
' gibt die Datei an den Browser aus
Response.BinaryWrite s.Read
Response.Flush
' Aufräumen
s.Schließen
Setze s = Nothing
End Function
Ende wenn
%>