例子代码:

public void Down()
{
TransmitFile(@"/File/KBPub.zip");
}
public void TransmitFile(string filePath) //filePath 下载的文件的相对路径
{
try
{
filePath = Server.MapPath(filePath);
if (System.IO.File.Exists(filePath))
{
FileInfo info = new FileInfo(filePath);
long fileSize = info.Length;
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed";
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + filePath.Substring(filePath.LastIndexOf("\\") + 1)); //filename 下载后显示的文件名
//不指明Content-Length用Flush的话不会显示下载进度的
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
System.Web.HttpContext.Current.Response.TransmitFile(filePath, 0, fileSize);
System.Web.HttpContext.Current.Response.Flush();
}
}
catch
{ }
finally
{
System.Web.HttpContext.Current.Response.Close();
}

}

WriteFile方式:

public void WriteFile(string filePath)
{
try
{
filePath = Server.MapPath(filePath);
if (System.IO.File.Exists(filePath))
{
FileInfo info = new FileInfo(filePath);
long fileSize = info.Length;
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachement;filename=" + Server.UrlEncode(info.FullName));
//指定文件大小
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
System.Web.HttpContext.Current.Response.WriteFile(filePath, 0, fileSize);
System.Web.HttpContext.Current.Response.Flush();
}
}
catch
{ }
finally
{
System.Web.HttpContext.Current.Response.Close();
}
}

最新文章

  1. sql语句操作
  2. Java从网络读取图片并保存至本地
  3. Android Handler简单使用
  4. Java对Excel表格的操作
  5. Difference between <? super T> and <? extends T> in Java
  6. myeclipse maven编译出错
  7. MYSQL和ORACLE的触发器与存储过程语法差异
  8. 为什么做Web开发要选择PHP
  9. XML文档读取-DOM
  10. 关于iOS9 HTTP不能正常使用的解决方法
  11. 01-Redhat/Centos7网卡命名介绍及修改方式
  12. 跳台阶(JAVA)
  13. BZOJ3456 城市规划(多项式求逆)
  14. SharePoint 2013 页面中window/document.onload/ready 事件不能触发的解决方案
  15. 关于webpy模板自动HTML转义的问题
  16. UVa 1149 装箱
  17. sidecar学习
  18. Unity3D中的UnitySendMessage方法的使用
  19. linux中断编程
  20. select和epoll

热门文章

  1. c++中获取代码运行时间
  2. 设置AD用户属性
  3. Asp.Net BulletedList
  4. 【转】牛逼闪闪的Ruby迭代器
  5. 深入理解Oracle索引(25):一招鲜、吃遍天之单字段索引创建思路
  6. MySql中的事件
  7. freemarker中的round、floor和ceiling数字的舍入处理
  8. laravel 5.0 artisan 命令列表(中文简体)
  9. InAction-MR的topK
  10. SqlServer 之 查看表空间