文件下载
1 #region ===========下载vendor模板按钮点击事件==================
2 /// <summary>
3 /// 下载模板事件
4 /// </summary>
5 protected void VendorDownloadClick(object sender, EventArgs e)
6 {
7 try
8 {
9 string filename = string.Empty;
10 string saveFileName = "VendorUploadTemplate.xlsx";
11 string sNewPath = Server.MapPath("UploadTemplate/VendorUploadTemplate.xlsx");
12 filename = sNewPath;
13 System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
14 byte[] aLogData = new byte[fs.Length];
15 fs.Read(aLogData, 0, (int)fs.Length);
16 fs.Close();
17 Response.ContentType = "application/octet-stream";
18 Response.AppendHeader("Content-Disposition", "attachment; filename=" + saveFileName);
19 Response.BinaryWrite(aLogData);
20 Response.End();
21 }
22 catch
23 {
24 Ext.MessageBox.Alert("Tip", this.GetMessage("MSG00108")).Show();
25 }
26 }
27 #endregion
前台使用的是coolite控件
1. Server.MapPath的使用方法:(转)
(1)、Server.MapPath("/")
注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
(2)、Server.MapPath("./")
注:获得所在页面的当前目录,等价于Server.MapPath("")。
(3)、Server.MapPath("../")
注:获得所在页面的上级目录。
(4)、Server.MapPath("~/")
注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。
2.FileStream 构造函数 (String, FileMode, FileAccess, FileShare)(http://msdn.microsoft.com/zh-cn/library/5h0z48dh%28VS.90%29.aspx)
使用指定的路径、创建模式、读/写权限和共享权限创建 FileStream 类的新实例。
- (1)path:类型:System.String,当前 FileStream 对象将封装的文件的相对路径或绝对路径。
- (2)mode:类型:System.IO.FileMode,FileMode 常数,确定如何打开或创建文件。
- (3)access:类型:System.IO.FileAccess, FileAccess 常数,它确定 FileStream 对象访问文件的方式。这将获取 FileStream 对象的 CanRead 和 CanWrite 属性。如果 path 指定磁盘文件,则 CanSeek 为 true。
- (4)share:类型:System.IO.FileShare, FileShare 常数,确定文件如何由进程共享。
3.Response.ContentType:获取或设置输出流的 HTTP MIME 类型。application/octet-stream表示二进制传输
Response.AppendHeader : 将 HTTP 头添加到输出流。Content-disposition是MIME 协议的一个扩展,attachment--作为附件下载,inline在线打开
(参考:http://www.qihangnet.com/PermaLink,guid,db65d50a-ba90-4229-a3a2-71b4f1b407b9.aspx)
Response.BinaryWrite : 不经任何字符转换就将指定的信息写到 HTTP 输出。该方法用于写非字符串信息(如客户端应用程序所需的二进制数据)