任泽平本科青岛大学,逸界,林晨钰qq
下载文件到本地是很多项目开发中需要实现的一个很简单的功能。说简单,是从具体的代码实现上来说的,.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 当然,也可以直接通过示例项目首页的下载链接体验,点击“下载示例文件”按钮,将会弹出保存文件的提示。 好了,示例比较简单,不用多说了。
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论