这篇文章主要介绍了C#如何兼容各大浏览器的文件下载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
为企业提供成都网站制作、网站设计、网站优化、成都全网营销推广、竞价托管、品牌运营等营销获客服务。成都创新互联公司拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!
1、css代码
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标签就好:如 文件下载
感谢你能够认真阅读完这篇文章,希望小编分享的“C#如何兼容各大浏览器的文件下载”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!