Er du nogensinde blevet frustreret, når du kommer til et websted, og der er dokumenter, billeder og andet indhold, der kan downloades, og du vil bare gøre det, download det! I stedet for, når du klikker på et indhold, fortsætter det med at åbne i din browser. Jeg var imod dette problem under et projekt for en medicinsk virksomhed, og de havde brug for, at deres PDF-filer skulle downloades og ikke åbnes. Nå, der er en måde at få det til at åbne dialogboksen Gem som.

I denne tutorial antager vi, at filerne gemmes lokalt på serveren og ikke i en database. (Det er en helt anden diskussion)

Først skal du vide, hvor dine filer er placeret. Lad os antage, at dine filer er placeret på //yourserver.com/files/filename.ext. Vi antager, at Server.MapPath er "/ files".

Så på dette tidspunkt, lad os oprette ASP-filen, der kontrollerer downloadingen af ​​filen. Start med at oprette et nyt, tomt dokument ved hjælp af NotePad eller din foretrukne HTML-editor. Placer følgende ASP-kode:

<%
'=======================
'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
%>


Det er det for den ene. Gem nu og upload denne fil til din server, og navngiv den filenownloader.asp

Lad os nu sige, at filnavnet på din server er familytree.pdf

Derefter passerer du simpelthen følgende URL i din browser, og dialogboksen File Save as Open vises.

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

Det er det! Du skal derefter se dette:



Held og lykke, og du kan forbedre dette ved at bruge databaser og andre seje funktioner for at sikre dig, at de filer, du vil have dine brugere til, får muligheden for at blive downloadet og ikke åbnet i deres nuværende webbrowser, så de kan "blive" på dit websted .

Video Instruktioner: SAO Abridged Parody: Episode 13 (Kan 2024).