Waren Sie jemals frustriert, als Sie auf eine Website kamen und Dokumente, Bilder und andere Inhalte zum Download zur Verfügung standen, und Sie möchten genau das tun, laden Sie sie herunter! Wenn Sie stattdessen auf ein Inhaltselement klicken, wird es in Ihrem Browser geöffnet. Ich hatte dieses Problem während eines Projekts für ein medizinisches Unternehmen und sie mussten ihre PDF-Dateien herunterladen und nicht öffnen. Nun, es gibt eine Möglichkeit, das Dialogfeld Speichern unter zu öffnen.

In diesem Tutorial wird davon ausgegangen, dass die Dateien lokal auf dem Server und nicht in einer Datenbank gespeichert sind. (Das ist eine ganz andere Diskussion)

Zunächst müssen Sie den Speicherort Ihrer Dateien kennen. Nehmen wir also an, Ihre Dateien befinden sich unter //yourserver.com/files/filename.ext. Wir gehen davon aus, dass der Server.MapPath "/ files" ist.

Lassen Sie uns an dieser Stelle die ASP-Datei erstellen, die das Herunterladen der Datei steuert. Erstellen Sie zunächst ein neues, leeres Dokument mit NotePad oder Ihrem bevorzugten HTML-Editor. Geben Sie den folgenden ASP-Code ein:

<%
'=======================
'Define the names of your functions
'=======================
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'=======================
'Get the actual file name from the URL that is passed to the browser
'=======================
FileName = request.querystring("filename") 'Get the name from the URL
'=======================
'GIVE AN ERROR MESSAGE IF THE URL IS EMPTY
'=======================
if FileName = "" Then
response.write "Filename Not specified."
response.end
end if
'=======================
'prevent access to certain files
'=======================
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
select case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
response.write "You cannot access these file types."
response.end
end select
'=======================
'Start the download process if all is good
'=======================
response.clear
response.contentType = "application/octet-stream"
response.addheader "content-disposition", "attachment; filename=" & FileName
set stream = server.CreateObject("ADODB.Stream")
stream.type = adTypeBinary
stream.open
stream.LoadFromFile Server.MapPath("/files") & FileName
while not stream.EOS
response.BinaryWrite Stream.Read(1024 * 64)
wend
stream.Close
Set stream = Nothing
response.Flush
response.End
%>


Das ist es für diesen einen. Speichern Sie nun diese Datei, laden Sie sie auf Ihren Server hoch und nennen Sie sie Dateiownownloader.asp

Angenommen, der Dateiname auf Ihrem Server lautet familytree.pdf

Dann übergeben Sie einfach die folgende URL in Ihrem Browser und das Dialogfeld Datei als geöffnet speichern wird angezeigt.

//yourserver.com/filedownloader.asp?filename=familytree.pdf

Das ist es! Sie sollten dann Folgendes sehen:



Viel Glück und Sie können dies verbessern, indem Sie Datenbanken und andere coole Funktionen verwenden, um sicherzustellen, dass die Dateien, auf die Ihre Benutzer zugreifen sollen, heruntergeladen und nicht in ihrem aktuellen Webbrowser geöffnet werden können, damit sie auf Ihrer Website "bleiben" können .

Video-Anleitungen: HTTP to HTTPS redirect : URL Rewrite in IIS 8 Windows Server 2012 Part 5 : SSL Certificate (Kann 2024).