net核心如何实现下载文件

  介绍

这篇文章主要介绍。净心如何实现下载文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<李>

<强>允许站点不识别- type下载文件(即:不受mime类型限制下载)

<李>

<>强如何允许下载.nupkg和。apk后缀的文件

<李>

<强>剃刀模板的帖子下载文件例子

<李>

<强>半年来使用NetCore的一些感想和焦虑

允许站点不识别- type下载文件(即:不受mime类型限制下载)

对于NetCore的web项目而言,内置了一些内容类型允许下载的文件类型;我们将通过一个普通的razorweb项目来看看直接通过连接下载excel例子,首先,在项目的wwwroot目录创建一个贝克文件夹,然后在该目录下存放如下几种文件:

。净心如何实现下载文件

通过测试这个时候只有excel。xls文件是能直接被下载的,其他的都是404:

。净心如何实现下载文件

要想. apk, .nupkg。cs等后缀的<>强文件不被限制强,我们可以通过IApplicationBuilder UseStaticFiles (IApplicationBuilder应用,StaticFileOptions选项);扩展来设置,我们仅仅只需要修改为如下代码:

app.UseStaticFiles(新StaticFileOptions   {//设置不限制内容类型   ServeUnknownFileTypes=true   });

然后在重启运行,这个时候我们再来访问下载这几个文件就没问题了(<强>注意这个时候下载任何后缀的文件都行),如下截图:

。净心如何实现下载文件

至于cs后缀的文件在谷歌浏览器中是直接显示的内容,这里就不贴图了,有兴趣的可以试试;

<>强如何允许下载.nupkg和。apk后缀的文件

通过上面例子我们能够使用;直接设置无限制下载文件类型,这种通常不是太好或者说不允许,亦或者不常说的不安全吧,如果我们只需要增加<强> .nupkg和。apk后缀强的文件的下载,那么可以通过如下代码来添加mime类型,如:

应用程序。UseStaticFiles(新StaticFileOptions   {//ServeUnknownFileTypes=true   ContentTypeProvider=new FileExtensionContentTypeProvider(新Dictionary<字符串,string>   {   {“.apk",“应用程序/vnd.android.package-archive"},   {“.nupkg",“应用程序/zip"}   })   });

同样的也能对excel, apk, nupkg后缀的文件进行下载:

。净心如何实现下载文件

但是这个时候我们访问就得不到下载的内容了:

。净心如何实现下载文件

因为我们没有添加对cs文件的扩展类型,故而系统直接给咋们返回404;这里我们通过<强> FileExtensionContentTypeProvider 对象的构造函数传递了一个映射的dic类型来让项目知道允许下载的内容类型类型的文件;

剃刀模板的帖子下载文件例子

老实说最近一端时间有空我就会研究下刀模板、下面我们将通过她的职位表单的方式来请求后端下载文件的方法;下面直接给出登录。cshtml文件的代码:

@page   @ model LoginModel   @ {}& lt;形式方法=皃ost"比;   & lt;按钮类型=皊ubmit"asp-page-handler=癲own"类=癰tn"祝辞下载& lt;/button>   & lt;按钮类型=皊ubmit"asp-page-handler=癲own01"类=癰tn"祝辞下载01 & lt;/button>   & lt;按钮类型=皊ubmit"asp-page-handler=癲own02"类=癰tn"祝辞下载02 & lt;/button>   & lt;/form>

这里值得注意的是,剃须刀通过<强> asp-page-handler=来执行请求后端的方法,我们来看看最终她生成的html代码后是什么样子的:

。净心如何实现下载文件

能够看出这里主要通过 <强>处理程序作为参数名称来传递请求的后端方法、下面再来看看后端代码这样写的(为了方便下载文件的路劲我以love.apk为例):

///& lt; summary>///虚拟文件地址输出下载///& lt;/summary>///& lt; returns> & lt;/returns>   公共IActionResult>以上是。净心如何实现下载文件的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

net核心如何实现下载文件