C#文件下载实例代码(适用于各个浏览器)
1、cs代码
publicvoidDownFile(stringfilePath,stringfileName)
{
//filePath文件路径例如:/File/记录.xlsx
//fileName文件名称例如:记录.xlsx(要后缀哦)
Encodingencoding;//申明编码
stringoutputFileName;//输出名字
Debug.Assert(HttpContext.ApplicationInstance.Request.UserAgent!=null,"HttpContext.ApplicationInstance.Request.UserAgent!=null");
stringbrowser=HttpContext.ApplicationInstance.Request.UserAgent.ToUpper();
//微软的浏览器和ie过滤
if(browser.Contains("MS")&&browser.Contains("IE"))
{
outputFileName=HttpUtility.UrlEncode(filePath);
encoding=Encoding.Default;
}
//火狐
elseif(browser.Contains("FIREFOX"))
{
outputFileName=fileName;
encoding=Encoding.GetEncoding("GB2312");
}
else
{
outputFileName=HttpUtility.UrlEncode(fileName);
encoding=Encoding.Default;
}
stringabsoluFilePath=Server.MapPath(filePath);//获取上传文件路径
FileStreamfs=newFileStream(absoluFilePath,FileMode.Open);
byte[]bytes=newbyte[(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#文件下载实例代码(适用于各个浏览器),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!