C# 一般处理程序下载文件
来源:互联网 发布:淘宝差评多久可以删除 编辑:程序博客网 时间:2024/06/05 08:59
利用一般处理程序下载文件,会在很多时候用到,但是,这是一条不归路啊,路上各种坑,不是乱码就是下载不下来。同样,今天我也踩上了这颗雷。还好,我是排雷兵,一样一样的排除
C# code
//文件下载
public void downloadfile(HttpContext context, string s_fileName)
{
string path = s_fileName;
System.IO.FileInfo file = new System.IO.FileInfo(System.Web.HttpContext.Current.Server.MapPath(path));
context.Response.Clear();
context.Response.Charset = "UTF-8";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.AddHeader("Content-Type", "application/octet-stream");
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名,设定编码为UTF8,防止中文文件名出现乱码
context.Response.AddHeader("Content-Disposition","attachment; filename="+ System.Web.HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
context.Response.AddHeader("Content-Length", file.Length.ToString());
//// 指定返回的是一个不能被客户端读取的流,必须被下载
context.Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
context.Response.WriteFile(file.FullName);
// 停止页面的执行
context.Response.End();
}
注意:html页面一定不能是用ajax去请求一般处理程序,否则累死也实现不了下载,他会永远给你弹出一个框,一面一堆乱码
一定要同<a href="....../a.ashx">下载</a>这样的请求方式才可以,需要传参的话,直接在后面拼上就行
这样,轻轻松松搞定
- C# 一般处理程序下载文件
- ASP.NET表单和一般处理程序处理文件上传和下载
- C#一般处理程序中使用Session
- c#一般处理程序接收参数
- C#一般处理程序中使用Session
- c# 一般处理程序调用js方法
- C#创建使用一般处理程序.ashx
- ajax 请求-->C#一般处理程序
- C# ashx一般处理程序Header设置
- C# 一般处理程序+jquery.uploadify.js 多文件上传图片/文件
- 文件上传 下载 一般处理程序和webForm联系以及asp.net内置对象
- 由Ajax请求一般处理程序下载文件引发的问题后的一些总结
- 文件上传(一般处理程序+html)
- (转帖)C#一般处理程序中使用Session
- C#一般处理程序中使用Session(转帖)
- C#网站一般处理程序(ashx)中session的问题
- c# 一般处理程序(Jquery ajax调用)
- c#在一般处理程序中使用session
- Android找不到So库解决方法
- 《图数据库》(人民邮电出版社)读书笔记四
- 利用webpack搭建es6环境
- 欢迎使用CSDN-markdown编辑器
- 线性判别模型LDA<二>
- C# 一般处理程序下载文件
- 计算字符串中的子串出现次数
- Java之正则表达式
- Caused by: java.lang.ClassNotFoundException;java.lang.NoClassDefFoundError
- VMware Workstation 软件 创建 Ubuntu 14.04虚拟机
- 高性能网站架构之负载均衡 Nginx+tomcat+redis实现tomcat集群
- 1019. 数字黑洞 (20)
- Collections.binarySearch用法
- java集合总结