C#文件下载实例代码(适用于各个浏览器)
作者:陈逸子风 发布时间:2022-12-28 06:25:48
标签:c#,文件下载
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


猜你喜欢
- 井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以使用一个二维数组来表示棋盘,判断胜负只需要判断数
- 首先在枚举类中 定义state 和定义的抽象方法。public enum JavaPlatformState { // 定义st
- 我想大家对DateTime.ToString()方法的用法肯定已经非常熟悉了,但我想大家用过的大部分用法都是:DateTime.ToStri
- 开发人员可以用以下两种方式声明UI:一是通过.xml文件(不带预览界面)或者.axml文件(带预览界面)来描述;二是用C#代码实现。&nbs
- 【前言】AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统
- 本文实例为大家分享了C#实现简易多人聊天室的具体代码,供大家参考,具体内容如下只有一个群聊的功能服务端using System;using
- PhotoView的简介:这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点击放大缩小。支持在ViewPager中翻页浏
- 本文实例为大家分享了java实现五子棋游戏的具体代码,供大家参考,具体内容如下此游戏具有双人对战功能和人机对战功能一、游戏界面的实现一个游戏
- 目录概述准备工作使用概述springboot通常整合redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式
- 1.Spring bean组件 ”默认为单例模式scope=“singleton, 运行JavaApplication容器启动时自动创建对象
- 小背景:我们公司项目中的小脚本是一些工具类,比如常用的是MapUtil工具类的一些方法写公司的MapUtil工具类的方法要注意,方法名的命名
- 本文实例分析了Android编程之json解析的方法。分享给大家供大家参考,具体如下:JSON的定义:一种轻量级的数据交换格式,具有良好的可
- 本文实例讲述了Java获取UTC时间的方法。分享给大家供大家参考,具体如下:取得本地时间:java.util.Calendar cal =
- java 实现MD5加密算法的简单实例实现代码:import java.security.NoSuchAlgorithmException;
- 整型变量基本语法格式int变量名= 初始值;代码示例int a = 10;int表示变量的类型是一个整型。在 Java 中, 一个int变量
- 一、二叉搜索树插入元素/** * user:ypc; * date:2021-05-18; * time: 15:09; */
- 本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示。添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容。导入jar包
- Android调试出现The selected device is incompatible问题解决在做Android调试时碰到该问题。详情
- 上一篇文章自定义viewgroup(1)地址:https://www.jb51.net/article/100608.htm这里直接代码:p
- 写在前面在前后端交互过程中,为了保证信息安全,我们往往需要加点用户验证。本文介绍了用springboot简单整合token。springbo