好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

dy("nrwz");

查看更多关于C#文件下载实例代码(适用于各个浏览器)的详细内容...

  阅读:41次