Pernahkah anda kecewa apabila anda sampai ke laman web dan terdapat dokumen, imej dan kandungan lain yang tersedia untuk dimuat turun dan anda mahu melakukan itu, muat turun! Sebaliknya, apabila anda mengklik pada item kandungan, ia akan dibuka pada penyemak imbas anda. Saya telah menentang isu ini semasa projek untuk sebuah syarikat perubatan dan mereka memerlukan fail PDF mereka untuk dimuat turun dan tidak dibuka. Nah, ada cara untuk membuka kotak dialog Save As.

Untuk tutorial ini, kami akan mengandaikan fail disimpan secara tempatan pada pelayan dan bukan dalam pangkalan data. (Ini adalah perbincangan yang berbeza secara keseluruhan)

Pertama, anda perlu mengetahui lokasi fail anda. Oleh itu, mari kita asumsikan fail anda berada di //yourserver.com/files/filename.ext. Kami akan menganggap bahawa Server.MapPath adalah "/ fail".

Jadi, pada ketika ini, mari buat fail ASP yang akan mengawal muat turun fail. Mulailah dengan membuat dokumen baru, kosong, menggunakan NotaPad atau editor HTML kegemaran anda. Letakkan kod ASP berikut:

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


Itulah untuk yang satu itu. Sekarang, simpan dan muat naik fail ini ke pelayan anda dan namakan ia filedownloader.asp

Sekarang katakan nama fail pada pelayan anda adalah familytree.pdf

Kemudian anda hanya akan lulus URL berikut dalam pelayar anda dan dialog Fail Simpan sebagai Terbuka akan muncul.

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

Iaitu ia! Anda perlu melihatnya:



Nasib baik dan anda boleh meningkatkan ini dengan menggunakan pangkalan data dan fungsi sejuk lain untuk memastikan bahawa fail yang anda mahu akses pengguna anda diberi keupayaan untuk dimuat turun dan tidak dibuka dalam penyemak imbas web semasa mereka yang membolehkan mereka untuk "tinggal" di laman web anda .

Arahan Video: How to upload and download files using asp net and c# Part 139 (Mungkin 2024).