ASP.NET(C#) Web Api通過文件流下載文件的實(shí)例
下載文件到本地是很多項(xiàng)目開發(fā)中需要實(shí)現(xiàn)的一個(gè)很簡單的功能。說簡單,是從具體的代碼實(shí)現(xiàn)上來說的,.NET的文件下載方式有很多種,本示例給大家介紹的是ASP.NET Web Api方式返回HttpResponseMessage下載文件到本地。實(shí)現(xià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)以上控制器后,我們可以直接打開這個(gè)api的地址(示例中的地址為:http://localhost:60560/download/get_demo_file),即可彈出下載文件的對(duì)話框了,如圖: asp-net-web-api-download-file 當(dāng)然,也可以直接通過示例項(xiàng)目首頁的下載鏈接體驗(yàn),點(diǎn)擊“下載示例文件”按鈕,將會(huì)彈出保存文件的提示。 好了,示例比較簡單,不用多說了。點(diǎn)擊這里下載示例源碼。
以上就是本文的全部內(nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- C# web api返回類型設(shè)置為json的兩種方法
- C#中通過API實(shí)現(xiàn)的打印類 實(shí)例代碼
- C#實(shí)現(xiàn)快遞api接口調(diào)用方法
- C#通過WIN32 API實(shí)現(xiàn)嵌入程序窗體
- 使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼
- c#調(diào)用api控制windows關(guān)機(jī)示例(可以重啟/注銷)
- C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤序列號(hào)
- C#獲取USB事件API實(shí)例分析
- c#之利用API函數(shù)實(shí)現(xiàn)動(dòng)畫窗體的方法詳解
- C# API中模型與它們的接口設(shè)計(jì)詳解
相關(guān)文章
ASP.NET Core中使用xUnit進(jìn)行單元測試
這篇文章主要介紹了ASP.NET Core中使用xUnit進(jìn)行單元測試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11asp.net中Fine Uploader文件上傳組件使用介紹
最近在處理后臺(tái)數(shù)據(jù)時(shí)需要實(shí)現(xiàn)文件上傳.考慮到對(duì)瀏覽器適配上采用Fine Uploader. Fine Uploader 采用ajax方式實(shí)現(xiàn)對(duì)文件上傳.同時(shí)在瀏覽器中直接支持文件拖拽[對(duì)瀏覽器版本有要求類似IE版本必須是9或是更高的IE10].2013-01-01ASP.NET2.0:頁面中鏈入的CSS、js文件帶中文時(shí)需注意
ASP.NET2.0:頁面中鏈入的CSS、js文件帶中文時(shí)需注意...2006-09-09登錄時(shí)記住用戶名和密碼及cookie案例應(yīng)用
本文將實(shí)現(xiàn)登錄時(shí)記住用戶的帳號(hào)密碼,接下來我們來模擬一個(gè)登錄介面,要把這個(gè)登錄的信息記錄至Cookie,還要把Cookie的過期時(shí)間設(shè)置7天之后過期,感興趣的朋友可以參考下,希望本文對(duì)你的cookie學(xué)習(xí)有所幫助2013-01-01分享AjaxPro或者Ajax實(shí)現(xiàn)機(jī)制
今天與大家分享AjaxPro或者Ajax實(shí)現(xiàn)機(jī)制,需要的朋友可以參考下。2011-12-12WebForm獲取checkbox選中的值(幾個(gè)簡單的示例)
WebForm中用checkbox的地方挺多的,下面寫了幾個(gè)簡單的例子,方便以后學(xué)習(xí)使用2014-07-07Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮(示例代碼)
這篇文章主要介紹了Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08Asp.net開發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要介紹了Asp.net開發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法,實(shí)現(xiàn)思路分為前后臺(tái)代碼和效果展示,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10