当前位置:首页 > 日记 > 正文

解决ASP.NET Core Mvc文件上传限制问题实例

解决ASP.NET Core Mvc文件上传限制问题实例

一、简介

在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢?

二、设置上传文件大小

1.应用程序级别设置

我们需要在 ConfigureServices方法中添加如下代码,设置文件上传的大小限制为60 MB。

public void ConfigureServices(IServiceCollection services){  servicesConfigure<FormOptions>(options =>  {    optionsMultipartBodyLengthLimit = 60000000;  });}

2.Action级别设置

除了上面对全局进行设置外,我们也可以通过自定义Filter的方式,对单个Action进行控制,Filter代码如下:

 [AttributeUsage(AttributeTargetsClass | AttributeTargetsMethod, AllowMultiple = false, Inherited = true)]  public class RequestFormSizeLimitAttribute : Attribute, IAuthorizationFilter, IOrderedFilter  {    private readonly FormOptions _formOptions;    public RequestFormSizeLimitAttribute(int valueCountLimit)    {      _formOptions = new FormOptions()      {        ValueCountLimit = valueCountLimit      };    }    public int Order { get; set; }    public void OnAuthorization(AuthorizationFilterContext context)    {      var features = contextHttpContextFeatures;      var formFeature = featuresGet<IFormFeature>();      if (formFeature == null || formFeatureForm == null)      {        // Request form has not been read yet, so set the limits        featuresSet<IFormFeature>(new FormFeature(contextHttpContextRequest, _formOptions));      }    }  }

因为ASP.NET Core MVC中,与之前版本不同的是具体功能被封装在了各种Feature(特征)中,HttpContext上下文只是能各个特征进行管理的容器。这个Filter中就只将Action拦截,对HttpContext中的FormFeature(负责表单提交功能)重新进行设置,从而达到限制具体Action上传文件大小的目的。

三、结语

本来感觉像是发现了一个文件上传的BUG,已经确认在1.0.1版本中已经进行了修复。在1.0.0版本中,如果Action没有设置一个IFromFile作为参数,那么Request.From.Files将不能访问并且报出异常。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

JS之if语句对接事件动作逻辑 | 详

JS之if语句对接事件动作逻辑 | 详

语句,事件,详解,逻辑,动作,if 函数的实现步骤:function +名字()指定id , 指定开关(display: none or block)if + else 构成逻辑 控制开关决定在哪里安置一个灯泡, 指定一个id给某个标签把开关用电线连着灯泡, 安装开关#+id名称{ 属性1= 赋值…

浅谈jquery中ajax跨域提交的时候会

浅谈jquery中ajax跨域提交的时候会

提交,请求,跨域,会有,浅谈,我们平时在同域中请求页面什么的时候不会有这种情况,这种情况大多发生在移动端的跨域请求中发生的。解决方法就是在服务端中加一层过滤HTTP请求的类型,把OPTION等不用的类型过滤掉。就是当请求为非HTTP中的 GET 和 …

JS库 Highlightjs 添加代码行号的

JS库 Highlightjs 添加代码行号的

行号,代码,电脑软件,JS,Highlightjs,Highlightjs是一款优秀的代码高亮Js组件,可以很方便地对各种语言编写的代码添加语法高亮样式。然而,Highlightjs默认是不包括显示代码行号(Line Number)这一特性的,不过可以通过简单的JS代码和CSS样式表实现…

painter怎么使用钢笔画笔绘制图形?

painter怎么使用钢笔画笔绘制图形?

绘制图形,电脑软件,painter,Painter绘制图形很简单,是一款很常用的绘图软件,今天我们就来看看painter中钢笔画笔的使用方法,请看下文详细介绍软件名称:Corel Painter(绘画软件) 2018 官方正式版(附注册机) 在线安装包 64位软件大小:994KB更新时…

excel表格斜杠绘制教程

excel表格斜杠绘制教程

绘制,教程,斜杠,表格,电脑软件,  Excel表格中如何绘制斜杠呢?下面是由小编分享的excel表格斜杠绘制教程,以供大家阅读和学习。excel表格斜杠绘制教程:  绘制斜杠步骤1:有时候,做表格需要给第一个格加斜杠,如下,绘制斜杠步骤2:选中要加斜杠的单…

Bootstrap栅格系统使用方法及页面

Bootstrap栅格系统使用方法及页面

变形,栅格系统,调整,解决方法,使用方法,如果你以前使用过Bootstrap2或者了解过响应式技术,那么肯定对Bootstrap栅格系统并不陌生,由于栅格系统的引入,使得Bootstrap的跨设备布局显示变得可能。什么是栅格系统栅格系统是指,将页面布局划分为等宽…

手机wps的ppt背景怎么编辑

手机wps的ppt背景怎么编辑

模板,方法,幻灯片,背景,编辑,  wps幻灯片的制作,怎么用手机去制作ppt呢?其实手机添加幻灯片模板和制作方法都很简单,关键是多学,下面给大家分享使用手机wps编辑幻灯片模板的方法,欢迎大家来到学习。手机wps添加幻灯片模板的方法wps添加幻灯片…

ps怎么制作一个膨胀文字的动画效果

ps怎么制作一个膨胀文字的动画效果

膨胀,动画效果,文字,电脑软件,ps,ps想要制作一段文字变形的动画,该怎么制作呢?下面我们就来看看ps制作文字膨胀效果的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先启动Photoshop cs5,执行…

用Photoshop把一张裁剪出一个圆形

用Photoshop把一张裁剪出一个圆形

电脑软件,Photoshop,对图片进行裁剪很容易,有时我们直接截图就可以了,可是如果我们要截取一个圆形出来还是借用Photoshop来处理比较好,下面就为大家详细介绍一下,一起来看看吧!步骤:1、用Photoshop打开需要处理的照片,如图2、选择使用椭圆选框工具…

PS怎么设计一个淘宝无线端首页?

PS怎么设计一个淘宝无线端首页?

首页,淘宝,电脑软件,PS,无线端的店铺主页的教程,详细请看下文。软件名称:Adobe photoshop 6.0 汉化中文免费版软件大小:107MB更新时间:2013-04-191、新建一个空白的背景图层如所示大小2、利用圆角矩形工具画出如所示的矩形3、然后将这上面的一…

ppt2010怎么打包成CDppt2010打包成

ppt2010怎么打包成CDppt2010打包成

步骤,方法,电脑软件,CD,strong,  所谓打包,指的就是将独立的已综合起来共同使用的单个或多个文件,集成在一起,生成一种独立于运行环境的文件。ppt如何打包?今天小编就来告诉你ppt2010打包成CD的方法步骤吧。希望对你有帮助!ppt2010打包成cd的…

JavaScript队列函数和异步执行详解

JavaScript队列函数和异步执行详解

队列,函数,执行,异步,详解,编辑注:在Review别人的JavaScript代码时曾看到过类似的队列函数,不太理解,原来这个是为了保证函数按顺序调用。读了这篇文章之后,发现还可以用在异步执行等。假设你有几个函数fn1、fn2和fn3需要按顺序调用,最简单的方…