ASP.NET(C#) Web Api通過文件流下載文件到本地實例


下載文件到本地是很多項目開發中需要實現的一個很簡單的功能。說簡單,是從具體的代碼實現上來說的,.NET的文件下載方式有很多種,本示例給大家介紹的是ASP.NET Web Api方式返回HttpResponseMessage下載文件到本地。實現的方法很簡單,其中就是讀取服務器的指定路徑文件流,將其做為返回的HttpResponseMessage的Content。直接貼出DownloadController控件器的代碼:

using System;
using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Web.Http; namespace DownloadFileFromWebApi.Controllers { [RoutePrefix("download")] public class DownloadController : ApiController { [Route("get_demo_file")] public HttpResponseMessage GetFileFromWebApi() { try { var FilePath = System.Web.Hosting.HostingEnvironment.MapPath(@"~/download/EditPlus64_xp85.com.zip"); var stream = new FileStream(FilePath, FileMode.Open); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StreamContent(stream); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName="Wep Api Demo File.zip" }; return response; } catch { return new HttpResponseMessage(HttpStatusCode.NoContent); } } } }

實現以上控制器后,我們可以直接打開這個api的地址(示例中的地址為:http://localhost:60560/download/get_demo_file),即可彈出下載文件的對話框了,如圖:asp-net-web-api-download-file當然,也可以直接通過示例項目首頁的下載鏈接體驗,點擊“下載示例文件”按鈕,將會彈出保存文件的提示。 好了,示例比較簡單,不用多說了。點擊這里下載示例源碼。


免責聲明!

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



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