Jalur pengunduhan disembunyikan dengan meneruskan ID di database, lalu membaca jalur di database melalui ID yang diteruskan di halaman lain.
1. Metode diimplementasikan dalam c# (hanya diperlukan kode .ASPX.CS)
string sel_sql="pilih FileVisualPath dari TabMailAttachFiles di mana FileID="+Request.QueryString[
"destFileName"].ToString(); // string destFileName = Permintaan.QueryString["destFileName"]!=null?Request.QueryString["destFileName" ]:"";
string destFileName=ROA.Components.fune_commerce.Execad(sel_sql).Tables[0].Rows[0][0].ToString();
destFileName = Server.MapPath(".")+destFileName;
destFileName = Server.UrlDecode(destFileName);
if(File.Exists(destFileName))
{
FileInfo fi = FileInfo baru(namaFile tujuan);
Respon.Hapus();
Respon.ClearHeaders();
Respon.Buffer = false;
//Response.AppendHeader("Disposisi Konten","attachment;filename=" +HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.Default));
Response.AppendHeader("Disposisi Konten","attachment;filename=" +HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.UTF8));
Response.AppendHeader("Panjang Konten",fi.Panjang.ToString());
Response.ContentType="application/octet-stream";
Respon.WriteFile(destFileName);
Respon.Flush();
Respon.End();
}
kalau tidak
{
Response.Write("<script langauge=javascript>alert('File tidak ada!');history.go(-1);</script>");
Respon.End();
}
2. Metode implementasi di ASP
<!--#include file="conn.asp" -->
<%
Respon.Buffer = benar
Respon. Jelas
url redup
Redupkan fso,fl,flsize
nama redup
Redupkan objStream,ContentType,flName,isre,url1
'********************************************* diteruskan saat memanggil file unduhan nama
m_ID=trim(permintaan.QueryString("ID"))
set rs=Server.CreateObject("adodb.recordset")
sql="pilih * dari tampilan data di mana xsf=true dan id="&m_ID
rs.open sql,sambungan,1,1
jika bukan rs.eof maka
NamaD=rs("jalur")
kalau tidak
Respon.Tulis("tidak ditemukan")
Respon.akhir
berakhir jika
rs.close:set rs=tidak ada
'******************************************************* ****************
Jika Nama<>"" Lalu
'******************************Direktori server tempat file yang diunduh disimpan
url=Server.MapPath(NamaD)
kalau tidak
Respon.Tulis("tidak ditemukan")
Respon.akhir
Akhiri Jika
Setel fso=Server.CreateObject("Scripting.FileSystemObject")
Setel fl=fso.getfile(url)
flsize=fl.ukuran
flName=fl.nama
Setel fl=Tidak ada
Tetapkan fso=Tidak ada
Setel objStream = Server.CreateObject("ADODB.Stream")
objStream.Buka
objStream.Jenis = 1
objStream.LoadFromFile url
Pilih Kasus lcase(Kanan(flName, 4))
Kasus ".asf"
Tipe Konten = "video/x-ms-asf"
Kasus ".avi"
Tipe Konten = "video/avi"
Kasus ".doc"
ContentType = "aplikasi/msword"
Kasus ".zip"
ContentType = "aplikasi/zip"
Kasus ".xls"
ContentType = "aplikasi/vnd.ms-excel"
Kasus ".gif"
Tipe Konten = "gambar/gif"
Kasus ".jpg", "jpeg"
Tipe Konten = "gambar/jpeg"
Kasus ".bmp"
Tipe Konten = "gambar/bmp"
Kasus ".ppt"
ContentType = "aplikasi/vnd.ms-powerpoint"
Kasus ".mdb"
ContentType = "aplikasi/x-msaccess"
Kasus ".wav"
Tipe Konten = "audio/wav"
Kasus ".mp3"
Tipe Konten = "audio/mpeg3"
Kasus ".mpg", "mpeg"
Tipe Konten = "video/mpeg"
Kasus ".rtf"
ContentType = "aplikasi/rtf"
Kasus ".htm", "html"
Tipe Konten = "teks/html"
Kasus ".txt"
ContentType = "teks/polos"
Kasus Lain
ContentType = "aplikasi/aliran oktet"
Pilihan Akhir
Response.AddHeader "Disposisi Konten", "lampiran; nama file=" & flName
Response.AddHeader "Panjang Konten", ukuran kecil
Respon.Charset = "UTF-8"
Respon.ContentType = ContentType
Respon.BinaryWrite objStream.Baca
Respon. Siram
respon.Hapus()
objStream.Tutup
Setel objStream = Tidak Ada
%>
Sumber: BLOG "Awan Hilang di Langit Biru".