C#文件下载实例代码(适用于各个浏览器)
作者:陈逸子风 时间:2022-12-28 06:25:48
1、cs代码
public void DownFile(string filePath ,string fileName )
{
// filePath 文件路径 例如:/File/记录.xlsx
// fileName 文件名称 例如:记录.xlsx (要后缀哦)
Encoding encoding; // 申明编码
string outputFileName; // 输出名字
Debug.Assert(HttpContext.ApplicationInstance.Request.UserAgent != null, "HttpContext.ApplicationInstance.Request.UserAgent != null");
string browser = HttpContext.ApplicationInstance.Request.UserAgent.ToUpper();
// 微软的浏览器和ie过滤
if (browser.Contains("MS") && browser.Contains("IE"))
{
outputFileName = HttpUtility.UrlEncode(filePath);
encoding = Encoding.Default;
}
//火狐
else if (browser.Contains("FIREFOX"))
{
outputFileName = fileName;
encoding = Encoding.GetEncoding("GB2312");
}
else
{
outputFileName = HttpUtility.UrlEncode(fileName);
encoding = Encoding.Default;
}
string absoluFilePath = Server.MapPath(filePath); //获取上传文件路径
FileStream fs = new FileStream(absoluFilePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close(); //关闭流,释放资源
HttpContext.ApplicationInstance.Response.Clear();
HttpContext.ApplicationInstance.Response.Buffer = true;
HttpContext.ApplicationInstance.Response.ContentEncoding = encoding;
HttpContext.ApplicationInstance.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", string.IsNullOrEmpty(outputFileName) ? DateTime.Now.ToString("yyyyMMddHHmmssfff") : outputFileName));
Response.BinaryWrite(bytes);
Response.Flush();
HttpContext.ApplicationInstance.Response.End();
}
2、html代码
前端HTML 写一个a标签就好:如 <a href='DownFile' target='_blank'>文件下载</a>
以上所述是小编给大家介绍的C#文件下载实例代码(适用于各个浏览器)网站的支持!
来源:http://www.cnblogs.com/cyzf/archive/2017/05/03/6801643.html
标签:c#,文件下载
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#实现二叉排序树代码实例
2021-10-10 06:26:12
![](https://img.aspxhome.com/file/2023/3/102223_0s.png)
浅谈Java工程读取resources中资源文件路径的问题
2021-07-20 19:13:45
![](https://img.aspxhome.com/file/2023/8/67668_0s.png)
Redis使用RedisTemplate模板类的常用操作方式
2023-01-30 08:33:40
Java使用Log4j记录日志的方法详解
2022-09-19 01:09:50
![](https://img.aspxhome.com/file/2023/6/78236_0s.png)
Java多线程案例之单例模式懒汉+饿汉+枚举
2021-11-07 05:18:01
![](https://img.aspxhome.com/file/2023/0/77130_0s.png)
android 点击EditText始终不弹出软件键盘实现代码
2022-05-23 06:37:19
Android自定义view之3D正方体效果实例
2023-02-01 05:01:34
微信公众号 网页授权登录及code been used解决详解
2023-02-06 18:49:00
![](https://img.aspxhome.com/file/2023/8/65768_0s.png)
Java class文件格式之访问标志信息_动力节点Java学院整理
2022-10-31 18:57:29
![](https://img.aspxhome.com/file/2023/5/101945_0s.png)
Java虚拟机GC日志分析
2023-02-21 15:04:40
Android如何使用GestureDetector进行手势检测详解
2022-03-21 22:08:46
详解SpringBoot Start组件开发之记录接口日志信息
2023-07-26 18:33:34
![](https://img.aspxhome.com/file/2023/5/57835_0s.jpg)
java调用python脚本引入第三方库失败的实现
2021-10-16 02:36:25
![](https://img.aspxhome.com/file/2023/1/96101_0s.png)
Mybatis 动态SQL的几种实现方法
2023-11-10 12:15:15
Java使用单链表实现约瑟夫环
2022-02-07 01:19:59
Spring Security 中如何让上级拥有下级的所有权限(案例分析)
2022-01-28 16:55:26
![](https://img.aspxhome.com/file/2023/9/68019_0s.jpg)
Spring Boot用户注册验证的实现全过程记录
2023-01-03 01:58:34
Android仿QQ6.0主页面侧滑效果
2022-08-06 03:44:16
![](https://img.aspxhome.com/file/2023/2/139572_0s.gif)
C#图片压缩的实现方法
2022-07-01 21:26:12
Java生成和解析XML格式文件和字符串的实例代码
2023-01-25 08:22:44