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