ASP.NET(C#) Web Api通过文件流下载文件的实例
下载文件到本地是很多项目开发中需要实现的一个很简单的功能。说简单,是从具体的代码实现上来说的,.NET的文件下载方式有很多种,本示例给大家介绍的是ASP.NETWebApi方式返回HttpResponseMessage下载文件到本地。实现的方法很简单,其中就是读取服务器的指定路径文件流,将其做为返回的HttpResponseMessage的Content。直接贴出DownloadController控件器的代码:
usingSystem; usingSystem.Collections.Generic; usingSystem.IO; usingSystem.Linq; usingSystem.Net; usingSystem.Net.Http; usingSystem.Net.Http.Headers; usingSystem.Web.Http; namespaceDownloadFileFromWebApi.Controllers { [RoutePrefix("download")] publicclassDownloadController:ApiController { [Route("get_demo_file")] publicHttpResponseMessageGetFileFromWebApi() { try { varFilePath=System.Web.Hosting.HostingEnvironment.MapPath(@"~/download/EditPlus64_xp85.com.zip"); varstream=newFileStream(FilePath,FileMode.Open); HttpResponseMessageresponse=newHttpResponseMessage(HttpStatusCode.OK); response.Content=newStreamContent(stream); response.Content.Headers.ContentType=newMediaTypeHeaderValue("application/octet-stream"); response.Content.Headers.ContentDisposition=newContentDispositionHeaderValue("attachment"){ FileName="WepApiDemoFile.zip" }; returnresponse; } catch { returnnewHttpResponseMessage(HttpStatusCode.NoContent); } } } }
实现以上控制器后,我们可以直接打开这个api的地址(示例中的地址为:http://localhost:60560/download/get_demo_file),即可弹出下载文件的对话框了,如图:asp-net-web-api-download-file当然,也可以直接通过示例项目首页的下载链接体验,点击“下载示例文件”按钮,将会弹出保存文件的提示。好了,示例比较简单,不用多说了。点击这里下载示例源码。
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持毛票票。