您现在的位置是:网站首页> 编程资料编程资料
解决ASP.NET Core Mvc文件上传限制问题实例_实用技巧_
2023-05-24
341人已围观
简介 解决ASP.NET Core Mvc文件上传限制问题实例_实用技巧_
一、简介
在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢?
二、设置上传文件大小
1.应用程序级别设置
我们需要在 ConfigureServices方法中添加如下代码,设置文件上传的大小限制为60 MB。
public void ConfigureServices(IServiceCollection services) { servicesConfigure(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(); if (formFeature == null || formFeatureForm == null) { // Request form has not been read yet, so set the limits featuresSet(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将不能访问并且报出异常。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- .NET工厂方法模式讲解_实用技巧_
- ASP.NET实现个人信息注册页面并跳转显示_实用技巧_
- 详解将ASP.NET Core应用程序部署至生产环境中(CentOS7)_实用技巧_
- ASP.NET实现电影票信息的增删查改功能_实用技巧_
- 详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )_实用技巧_
- 详解ASP.NET Core 之 Identity 入门(三)_实用技巧_
- 详解ASP.NET Core 之 Identity 入门(二)_实用技巧_
- 详解ASP.NET Core 之 Identity 入门(一)_实用技巧_
- Asp.net Core 初探(发布和部署Linux)_实用技巧_
- 详解ASP.NET Core 中间件之压缩、缓存_实用技巧_
