1、cs代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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