mvc 下載檔案

來源:互聯網
上載者:User

方式一:

/// <summary>

    /// 檔案下載類
    /// 調用1:DownLoadFile("/2003.xls", null); 
    /// 調用2:DownLoadFile("/2003.xls", ""); 
    /// 調用3:DownLoadFile("/2003.xls", "temp.xls"); 
    /// </summary>
    /// <param name="filePath">檔案路徑(格式:/upload/2003.xls)</param>
    /// <param name="filename">自訂檔案名稱(不想自訂檔案名稱請傳[ "" or null ] )</param>

public ActionResult DownFile(string filePath, string fileName)  

  1.         {  
  2.             filePath = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["AttachmentPath"] + filePath);  
  3.             FileStream fs = new FileStream(filePath, FileMode.Open);  
  4.             byte[] bytes = new byte[(int)fs.Length];   //以字元流的形式下載檔案

  5.             fs.Read(bytes, 0, bytes.Length);  
  6.             fs.Close();  
  7.             Response.Charset = "UTF-8";  
  8.             Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");  
  9.             Response.ContentType = "application/octet-stream";  //通知瀏覽器下載檔案而不是開啟

  10.   
  11.             Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(fileName));  
  12.             Response.BinaryWrite(bytes);  
  13.             Response.Flush();  
  14.             Response.End();  
  15.             return new EmptyResult();  
  16.   
  17.         } 

方式二:

public FileStreamResult DownFile(string filePath, string fileName)
{
      string absoluFilePath = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["AttachmentPath"] +      filePath);
       return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName));
}

調用方式:

<a href="/Document/DownFile?filePath=@item.Value&fileName=@item.Key">下載</a>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.