Anda dapat menggunakan unduhan streaming (menghabiskan memori, menggunakan lebih sedikit) atau langsung membuka file.
<%
Const USE_STREAM = 0 '0. Unduh tanpa streaming (Adodb.Stream) 1. Unduh dengan streaming
Const ALLOW_FILE_EXT = "rar,zip,chm,doc,xls,swf,mp3,gif,jpg,jpeg,png,bmp" 'Izinkan ekstensi file yang diunduh untuk mencegah kode sumber diunduh
Dim sDownFilePath 'Unduh jalur file
sDownFilePath = Pangkas(Permintaan("FilePath"))
'Atau dapatkan jalur file dari database berdasarkan ID file yang diteruskan
' Jika sDownFilePath adalah jalur absolut, pastikan untuk mengonversi sDownFilePath ke jalur relatif ke file ini'sDownFilePath
= "focus.swf"
Panggil
Fungsi DownloadFile(sDownFilePath) DownloadFile (s_DownFilePath )
'Tentukan apakah nama file diteruskan
Jika IsNull(s_DownFilePath) = Benar Atau Trim(s_DownFilePath) = "" Lalu
OutputErr "Error: Pertama tentukan file yang akan diunduh, unduhan gagal"
End If
'Tentukan apakah perpanjangan itu sah
Dims_FileExt
s_FileExt = Tengah(s_DownFilePath, InstrRev(s_DownFilePath, ".")+1)
Jika InStr("," & ALLOW_FILE_EXT & ",", "," & s_FileExt & ",") <= 0 Lalu
OutputErr "Kesalahan: Jenis file (" & s_FileExt & ") tidak boleh diunduh, dan unduhan gagal"
Akhiri Jika
s_DownFilePath = Ganti(s_DownFilePath, "", "/")
'Untuk alasan keamanan, pengunduhan file dilarang di beberapa direktori dan ditangani di sini.
'
'Periksa apakah server mendukung fso
Redupkan o_Fso
Pada Kesalahan Lanjutkan Berikutnya
Setel o_Fso = Server.CreateObject("Scripting.FileSystemObject")
Jika Err.Number <> 0 Lalu
Err. Jelas
OutputErr "Kesalahan: Server tidak mendukung komponen fso dan pengunduhan gagal"
Akhir Jika
'Dapatkan nama file, ukuran file
Dims_FileMapPath
Redupkan o_File, s_FileName, n_FileLength
s_FileMapPath = Server.MapPath(s_DownFilePath)
Jika (o_Fso.FileExists(s_FileMapPath)) = Benar Maka
Setel o_File = o_Fso.GetFile(s_FileMapPath)
s_FileName = o_File.Nama
n_FileLength = o_File.Ukuran
o_File.Tutup
Kalau tidak
OutputErr "Kesalahan: file tidak ada, pengunduhan gagal"
Akhiri Jika
Set o_Fso = Nothing
'Tentukan apakah ukuran file yang diunduh melebihi batas
'
'Jika tidak diunduh secara streaming, langsung buka filenya
Jika USE_STREAM = 0 Maka
Respon.Redirect sDownFilePath
Respon.akhir
Akhiri Jika
'Deteksi apakah server mendukung Adodb.Stream
Pada Kesalahan Lanjutkan Berikutnya
Setel o_Stream = Server.CreateObject("Adodb.Stream")
Jika Err.Number <> 0 Lalu
Err. Jelas
OutputErr "Kesalahan: Server tidak mendukung komponen Adodb.Stream dan pengunduhan gagal"
Berakhir Jika
o_Stream.Tyep = 1
o_Stream.Buka
o_Stream.LoadFromFile s_FileMapPath
Respons.Buffer = Benar
Respon. Jelas
Response.AddHeader "Disposisi Konten", "lampiran; nama file=" & s_FileName
Response.AddHeader "Panjang Konten", n_Panjang File
Respon.CharSet = "UTF-8"
Response.ContentType = "aplikasi/aliran oktet"
Respon.BinaryWrite o_Stream.Read
Respon.Siram
o_Stream.Tutup
Setel o_Stream = Tidak Ada
Fungsi Akhir
Sub OutputErr(s_ErrMsg)
Respon.Tulis "<font color=red>" & s_ErrMsg & "</font>"
Respon.Akhir
Sub Akhir
%>
http://www.cnblogs.com/jiny-z/archive/2006/08/29/489102.html