protected void Button1_Click(object sender, EventArgs e){/*微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。代码如下:*/Response.ContentType = "application/x-zip-compressed";Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");string filename = Server.MapPath("DownLoad/aaa.zip");Response.TransmitFile(filename);}//WriteFile实现下载protected void Button2_Click(object sender, EventArgs e){/*using System.IO;*/string fileName ="aaa.zip";//客户端保存的文件名string filePath=Server.MapPath("DownLoad/aaa.zip");//路径
FileInfo fileInfo = new FileInfo(filePath);Response.Clear();Response.ClearContent();Response.ClearHeaders();Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);Response.AddHeader("Content-Length", fileInfo.Length.ToString());Response.AddHeader("Content-Transfer-Encoding", "binary");Response.ContentType = "application/octet-stream";Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");Response.WriteFile(fileInfo.FullName);Response.Flush();Response.End();}//WriteFile分块下载protected void Button3_Click(object sender, EventArgs e){string fileName = "aaa.zip";//客户端保存的文件名string filePath = Server.MapPath("DownLoad/aaa.zip");//路径
System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);if (fileInfo.Exists == true){const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力byte[] buffer = new byte[ChunkSize];Response.Clear();System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);long dataLengthToRead = iStream.Length;//获取下载的文件总大小Response.ContentType = "application/octet-stream";Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));while (dataLengthToRead > 0 && Response.IsClientConnected) {int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小Response.OutputStream.Write(buffer, 0, lengthRead);Response.Flush();dataLengthToRead = dataLengthToRead - lengthRead;}Response.Close();}}//流方式下载protected void Button4_Click(object sender, EventArgs e){string fileName = "aaa.zip";//客户端保存的文件名string filePath = Server.MapPath("DownLoad/aaa.zip");//路径//以字符流的形式下载文件FileStream fs = new FileStream(filePath, FileMode.Open);byte[] bytes = new byte[(int)fs.Length];fs.Read(bytes, 0, bytes.Length);fs.Close();Response.ContentType = "application/octet-stream";//通知浏览器下载文件而不是打开Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));Response.BinaryWrite(bytes);Response.Flush();Response.End();} 

本文转自 梦在旅途 博客园博客,原文链接:http://www.cnblogs.com/zuowj/archive/2013/04/17/Wheeky.html  ,如需转载请自行联系原作者

asp.net C#后台实现下载文件的几种方法相关推荐

  1. python如何实现下载文件_python实现下载文件的三种方法

    python实现下载文件的三种方法 Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件. ...

  2. 从Linux终端下载文件的2种方法

    如果您坚持使用Linux终端,例如在服务器上,如何从终端下载文件? Linux中没有下载命令,但是有几个用于下载文件的Linux命令. 在这个终端技巧中,您将学习在Linux中使用命令行下载文件的两种 ...

  3. 用python下载文件的若干种方法汇总

    压缩文件可以直接放到下载器里面下载的 you-get 连接 下载任意文件 重点 用python下载文件的若干种方法汇总 写文章 用python下载文件的若干种方法汇总 zhangqibot发表于Met ...

  4. python下载方法-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  5. python下载的文件放在哪里的-python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  6. python 下载文件-用python下载文件的若干种方法汇总

    在日常科研或者工作中,我们免不了要批量从网上下载一些资料.要是手工一个个去下载,浪费时间又让鼠标折寿,好不容易点完了发现手指都麻木了. 这种重复性的批量作业我们应该交给python小弟去帮我们搞定,这 ...

  7. python 下载文件-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  8. Powershell下载文件的三种方法

    Powershell下载文件的三种方法 Invork-WebRequest WebClient对象 BitsTransfer模块 layout: post title: Powershell下载文件的 ...

  9. 下载文件的几种方法:

    下载文件的几种方法: private void writeFileBuffer(String fileName, HttpServletRequest request, HttpServletResp ...

  10. asp从服务器下载文件的几种方法

    1.前台 <form id="form1" runat="server"> <asp:FileUpload ID="homework ...

最新文章

  1. 【超详细】DBCP连接池配置参数说明
  2. 分布式计算的模式语言读后感
  3. 从接触FPGA开始...
  4. linux搭建mq环境,Linux搭建servicemix、activemq环境
  5. 【iCore3 双核心板】例程二十二:LAN_UDP实验——以太网数据传输
  6. 前端学习(2627):node安装
  7. AI前沿 | Gartner曲线5大趋势:传感和移动、超能人类、自动机器人、高级人工智能…...
  8. 三星Galaxy Note系列年底停产:被折叠屏手机/Galaxy S系列取代
  9. 【2018.06.21学习笔记】【linux高级知识 14.1-14.3】
  10. 基于 Flink 打造的伴鱼实时计算平台 Palink 的设计与实现
  11. 【HDU5698】瞬间移动(杨辉三角+逆元)
  12. 基于STM32构建EtherCAT主站(SOEM方案)2
  13. 360 路由器设置 虚拟服务器,360安全路由器的设置方法
  14. java rd th 小票机_英语日期rd,th有什么区别,怎么运用
  15. python+turtle制作一个生日蛋糕
  16. 检查xml写的格式是否正确的方法
  17. ​大话中国骨干网(下)(转)​
  18. 华为南研所2015年面试经历总结
  19. 被计算机控制的人,电脑有可能被别人控制吗?
  20. i春秋首届全国数据安全大赛部分复盘

热门文章

  1. ajax分页效果、分类联动、搜索功能
  2. springmvc返回json字符串中文乱码问题
  3. WPF UI布局之概述
  4. android 快捷方式代码片段随记
  5. 《算法导论》第7章 快速排序 (四种变形)
  6. 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
  7. 前端MVC学习笔记第二课
  8. 企业项目开发--cookie(3)
  9. .msi文件安装出现2503、2502错误
  10. ecshop数据库操作类