您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“ASP.NET Web Api如何通過(guò)文件流下載文件”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“ASP.NET Web Api如何通過(guò)文件流下載文件”吧!
下載文件到本地是很多項(xiàng)目開(kāi)發(fā)中需要實(shí)現(xiàn)的一個(gè)很簡(jiǎn)單的功能。說(shuō)簡(jiǎn)單,是從具體的代碼實(shí)現(xiàn)上來(lái)說(shuō)的,.NET的文件下載方式有很多種,本示例給大家介紹的是ASP.NET Web Api方式返回HttpResponseMessage下載文件到本地。實(shí)現(xiàn)的方法很簡(jiǎn)單,其中就是讀取服務(wù)器的指定路徑文件流,將其做為返回的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); } } } }
實(shí)現(xiàn)以上控制器后,我們可以直接打開(kāi)這個(gè)api的地址(示例中的地址為:http://localhost:60560/download/get_demo_file),即可彈出下載文件的對(duì)話(huà)框了,如圖: asp-net-web-api-download-file 當(dāng)然,也可以直接通過(guò)示例項(xiàng)目首頁(yè)的下載鏈接體驗(yàn),點(diǎn)擊“下載示例文件”按鈕,將會(huì)彈出保存文件的提示。 好了,示例比較簡(jiǎn)單,不用多說(shuō)了。點(diǎn)擊這里下載示例源碼。
到此,相信大家對(duì)“ASP.NET Web Api如何通過(guò)文件流下載文件”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。