C#文件下載(適用於各個瀏覽器)


1、cs代碼

 1 public void DownFile(string filePath ,string fileName )
 2 {
 3  // filePath  文件路徑 例如:/File/記錄.xlsx 
 4 
 5  // fileName  文件名稱 例如:記錄.xlsx (要后綴哦)
 6 Encoding encoding; // 申明編碼
 7 string outputFileName; // 輸出名字
 8 Debug.Assert(HttpContext.ApplicationInstance.Request.UserAgent != null, "HttpContext.ApplicationInstance.Request.UserAgent != null");
 9 string browser = HttpContext.ApplicationInstance.Request.UserAgent.ToUpper();
10 // 微軟的瀏覽器和ie過濾
11 if (browser.Contains("MS") && browser.Contains("IE"))
12 {
13 outputFileName = HttpUtility.UrlEncode(filePath);
14 encoding = Encoding.Default;
15 }
16 //火狐
17 else if (browser.Contains("FIREFOX"))
18 {
19 outputFileName = fileName;
20 encoding = Encoding.GetEncoding("GB2312");
21 }
22 else
23 {
24 outputFileName = HttpUtility.UrlEncode(fileName);
25 encoding = Encoding.Default;
26 }
27 
28 string absoluFilePath = Server.MapPath(filePath); //獲取上傳文件路徑
29 FileStream fs = new FileStream(absoluFilePath, FileMode.Open);
30 byte[] bytes = new byte[(int)fs.Length];
31 fs.Read(bytes, 0, bytes.Length);
32 fs.Close(); //關閉流,釋放資源
33 HttpContext.ApplicationInstance.Response.Clear();
34 HttpContext.ApplicationInstance.Response.Buffer = true;
35 HttpContext.ApplicationInstance.Response.ContentEncoding = encoding;
36 HttpContext.ApplicationInstance.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", string.IsNullOrEmpty(outputFileName) ? DateTime.Now.ToString("yyyyMMddHHmmssfff") : outputFileName));
37 Response.BinaryWrite(bytes);
38 Response.Flush();
39 HttpContext.ApplicationInstance.Response.End();
40 }

2、html代碼

前端HTML 寫一個a標簽就好:如 <a href='DownFile' target='_blank'>文件下載</a>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM