Đăng ngày: 01:44 02-07-2009
Code cho client có thể
download từ server
Bắt
đầu in từ : kythuatvien.com™
Mục
lục: Software column
Tên
diễn đàn: ASP, ASP.Net...
Forum
Discription: Thảo luận về lập trình bằng ngôn ngữ ASP,
ASP.Net...
URL:
http://www.kythuatvien.com/forum/forum/forum_posts.asp?TID=1898
Ngày
In: 01/7/2009 lúc 16:00
Chủ
đề: Code cho client có thể download từ
server
được đăng bởi:
proman
Đề
Tài: Code cho client có thể download từ server
Ngày
đăng bài: 22/4/2008 lúc 22:37
|
Thường khi download 1
file chúng ta thường dùng một link trỏ đến file đó để download. Thường cách
này thành công với các file zip, rar .... là những file không thể hiển thị
trên trình duyệt.
đối với các file khác như file hình, file aspx, asp .... là những file hiển thị
được trên browser thì cách làm như trên sẽ bị phá sản.
Mình xin giới thiệu 1 function cho phép download bất cứ file nào trên server.
Cụ thể như sau:
private void ForceDownload(string fname)
{
string path = MapPath(fname);
string name = Path.GetFileName(path);
Response.AppendHeader("content-disposition","attachment; filename=" + name);
Response.WriteFile(path);
Response.End();
} |
tham số truyền vào là fname là tên file cần download. Ở đây chúng ta truyền
vào là địa chỉ tương đối.
hàm MapPath(fname); sẽ lấy địa chỉ vật lý của file đó (địa
chỉ trên server).
và gửi file xuống client
Khi dữ liệu từ server được gửi xuống client thì Header sẽ cho browser biết
dạng của dữ liệu gửi từ server và với header là "content-disposition" thì browser sẽ hiển thị hộp thoại save
file.
Ngoài ra nhiều người còn sử dụng header là:
- "application/x-msdownload"
- "application/octet-stream"
để bắt browser phải hiện hộp thoại save file.
Bro nào hiểu rõ về các header có thể giúp mình giải thích rõ hơn ...
Đã test với IE6 và kết quả ... OK.
|
Diệu Hồng - Đặng 15:41 26-10-2009