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#,文件下载
0
投稿

猜你喜欢

  • C#实现二叉排序树代码实例

    2021-10-10 06:26:12
  • 浅谈Java工程读取resources中资源文件路径的问题

    2021-07-20 19:13:45
  • Redis使用RedisTemplate模板类的常用操作方式

    2023-01-30 08:33:40
  • Java使用Log4j记录日志的方法详解

    2022-09-19 01:09:50
  • Java多线程案例之单例模式懒汉+饿汉+枚举

    2021-11-07 05:18:01
  • 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
  • Java class文件格式之访问标志信息_动力节点Java学院整理

    2022-10-31 18:57:29
  • Java虚拟机GC日志分析

    2023-02-21 15:04:40
  • Android如何使用GestureDetector进行手势检测详解

    2022-03-21 22:08:46
  • 详解SpringBoot Start组件开发之记录接口日志信息

    2023-07-26 18:33:34
  • java调用python脚本引入第三方库失败的实现

    2021-10-16 02:36:25
  • Mybatis 动态SQL的几种实现方法

    2023-11-10 12:15:15
  • Java使用单链表实现约瑟夫环

    2022-02-07 01:19:59
  • Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    2022-01-28 16:55:26
  • Spring Boot用户注册验证的实现全过程记录

    2023-01-03 01:58:34
  • Android仿QQ6.0主页面侧滑效果

    2022-08-06 03:44:16
  • C#图片压缩的实现方法

    2022-07-01 21:26:12
  • Java生成和解析XML格式文件和字符串的实例代码

    2023-01-25 08:22:44
  • asp之家 软件编程 m.aspxhome.com