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 den IE. <%@ language=vbscript codepage=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
Ende wenn
'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
'Datei an den Browser ausgeben
Response.BinaryWrite s.Read
Response.Flush
„Aufräumen
s.Schließen
Setze s = Nichts
Funktion beenden
Ende wenn
%>