我现在接触到的下载有两种形式:
直接下载服务器某个目录下的文件和下载数据库中存的二进制文件
代码如下:
//获取文件对象
FileInfo file = new FileInfo(Server.MapPath("~/123123213213.txt"));
//附件形式
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("好啊.txt", System.Text.Encoding.UTF8));
Response.WriteFile(file.FullName);
//模拟数据库取出的二进制流形式
Response.Clear();
byte[] b = new byte[file.Length];
FileStream fs = new FileStream(Server.MapPath("~/123123213213.txt"), FileMode.Open);
fs.Read(b, 0, (int)file.Length);//这里强转,存时要限制流大小
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("好啊.txt", System.Text.Encoding.UTF8));
Response.BinaryWrite(b);
Response.Flush();
Response.End();
有几点需要说明:
1.Content-Disposition是一种扩展的html协议,我的理解是正好可以来处理下载功能
他的值有两种:attachment表示以附件形式下载,inline表示就在网页上来显示
2.filename后面可以自己跟据需要来定文件名与文件扩展名
3.如果文件名内有中文字,一定要编码,不然会有乱码的
4.Response.End()是一定需要的,不然下载后的文件会莫明增大一点点,我在试的过程中,如果是word文件还好,是excel文件会提示文件损坏,需要修复。虽然一般都能修好,但还是不要这样的好!
一面是一个比较好的网址,说的比我详细:
http://www.cnblogs.com/fredlau/archive/2008/10/14/1311018.html
分享到:
相关推荐
ASP.NET 路由实现去除aspx后缀 ASP.NET 路由实现去除aspx后缀
通常情况下,在asp.net做下载功能 只需要做成一个链接就可以了,但是对于图片这种情况,却不能那样实现,因为点击图片时,会在浏览器中直接打开。 这个项目中包含了图片下载的代码。请各位借鉴
ASP.NET中实现Web打印的方案 ASP.NET中实现Web打印的方案 ASP.NET中实现Web打印的方案
基于ASP.NET MVC实现的在线考试系统项目源码.zip 代码完整下载可用。 基于ASP.NET MVC实现的在线考试系统项目源码.zip 代码完整下载可用。基于ASP.NET MVC实现的在线考试系统项目源码.zip 代码完整下载可用。基于...
Asp.net 系统设计,运用主流架构模式。私信 留言 源码+数据库
asp.net 实现网页软键盘功能,asp.net源码,实现网页软键盘
ASP.net中实现word控件原代码
asp.net如何实现播放视频 asp.net如何实现播放视频 asp.net如何实现播放视频
基于asp.net mvc验证码的实现。
asp.net实现下载功能方法,asp.net实现下载功能方法
用ASP.NET实现的九九乘法表算法,对ASP.NET初学者或北大青鸟学生有可能有用.
主要为大家详细介绍了ASP.NET MVC实现图片上传、图片预览显示的相关资料,需要的朋友可以参考下
asp.net简单实现web打印功能,效果还不错
AJAX+asp.net 实现的在线聊天
asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net...
ASP.Net 脚本实现flash循环广告 4幅图片以随机方式循环出现。各网站常见的图片展示方法。
自己写了一个 用ASP.NET 实现的上传下载 小案例. .
Asp.Net实现下载功能 点击按钮 实现下载 数据绑定下载
开发语言asp.net,数据库为SQL Server2000,能够实现留言功能的简洁的留言板
ASP.NET实现EXCEL数据导入进度条ajax。有已经实现的工程源代码。有进度条和百分比统计,已导入数量和总数统计。