通过一般处理程序实现【文件下载】
2016-11-17 17:19
417 查看
服务器代码:
//在下载之前可以做权限验证,积分判断等,如果条件满足了,则提供下载,否则提示用户权限不足或权限不够,不允许下载。
//获取要下载的文件名称
string fileName = context.Request.QueryString["filename"];
//拼接文件路径
string url = "~/files/" + fileName;
//在响应用户前,设置响应报文头,告诉浏览器,如何处理当前的内容,是一个附件,需要下载
//HttpUtility.UrlEncode这句是解决文件名是中文是乱码问题
context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"",HttpUtility.UrlEncode( fileName)));
//从磁盘中读取对应的文件,并反应给用户
context.Response.WriteFile(url);
客户端代码://注意这个直接添加文件名即可,路径在一般处理程序就获取到了。
<ul>
<li><a href="DownLoad.ashx?filename=0.gif">0.gif</a></li>
<li><a href="DownLoad.ashx?filename=1.png">1.png</a></li>
<li><a href="DownLoad.ashx?filename=2.cs">2.cs</a></li>
<li> <a href="DownLoad.ashx?filename=3.zip">3.zip</a></li>
<li> <a href="DownLoad.ashx?filename=哈哈.txt">哈哈.txt</a> </li>
</ul>
//在下载之前可以做权限验证,积分判断等,如果条件满足了,则提供下载,否则提示用户权限不足或权限不够,不允许下载。
//获取要下载的文件名称
string fileName = context.Request.QueryString["filename"];
//拼接文件路径
string url = "~/files/" + fileName;
//在响应用户前,设置响应报文头,告诉浏览器,如何处理当前的内容,是一个附件,需要下载
//HttpUtility.UrlEncode这句是解决文件名是中文是乱码问题
context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"",HttpUtility.UrlEncode( fileName)));
//从磁盘中读取对应的文件,并反应给用户
context.Response.WriteFile(url);
客户端代码://注意这个直接添加文件名即可,路径在一般处理程序就获取到了。
<ul>
<li><a href="DownLoad.ashx?filename=0.gif">0.gif</a></li>
<li><a href="DownLoad.ashx?filename=1.png">1.png</a></li>
<li><a href="DownLoad.ashx?filename=2.cs">2.cs</a></li>
<li> <a href="DownLoad.ashx?filename=3.zip">3.zip</a></li>
<li> <a href="DownLoad.ashx?filename=哈哈.txt">哈哈.txt</a> </li>
</ul>
相关文章推荐
- 通过一般处理程序实现【文件下载】
- 通过一般处理程序实现【文件上传】
- js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法
- Ajax请求ashx一般处理程序实现文件下载
- 通过一般处理程序实现【文件上传】
- asp.net使用一般处理程序实现文件下载
- Asp.net利用一般处理程序实现文件下载功能
- 怎样在asp.net中用一般处理文件ashx实现下载功能
- [导入]通过程序实现文件下载更名,动态文件下载
- HTML加一般处理程序实现文件上传
- 文件上传 下载 一般处理程序和webForm联系以及asp.net内置对象
- .net通过一般处理程序模拟用户控件数据保持、Ispostback 【第二版将html与ashx文件分开】
- ajax简单解析xml文件(复杂的解析可以通过后台程序实现,如一般处理程序)
- 通过程序实现文件下载更名,动态文件下载
- Asp.Net 用Jquery和一般处理程序实现无刷新上传大文件
- (转)Asp.Net 用Jquery和一般处理程序实现无刷新上传大文件
- ASP.NET表单和一般处理程序处理文件上传和下载
- C# 一般处理程序下载文件
- 使用一般处理程序HTTPHandler下载文件
- 由Ajax请求一般处理程序下载文件引发的问题后的一些总结