解决ASP.NET Core Mvc文件上传限制问题
2017-03-03 15:26
936 查看
阅读目录
回到目录一、简介
在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢?
回到目录二、设置上传文件大小
1.应用程序级别设置
我们需要在 ConfigureServices方法中添加如下代码,设置文件上传的大小限制为60 MB。
- public void ConfigureServices(IServiceCollection services)
- {
- services.Configure<FormOptions>(options =>
- {
- options.MultipartBodyLengthLimit = 60000000;
- });
- }
2.Action级别设置
除了上面对全局进行设置外,我们也可以通过自定义Filter的方式,对单个Action进行控制,Filter代码如下:
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, 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 = context.HttpContext.Features;
- var formFeature = features.Get<IFormFeature>();
- if (formFeature == null || formFeature.Form == null)
- {
- // Request form has not been read yet, so set the limits
- features.Set<IFormFeature>(new FormFeature(context.HttpContext.Request, _formOptions));
- }
- }
- }
因为ASP.NET Core MVC中,与之前版本不同的是具体功能被封装在了各种Feature(特征)中,HttpContext上下文只是能各个特征进行管理的容器。这个Filter中就只将Action拦截,对HttpContext中的FormFeature(负责表单提交功能)重新进行设置,从而达到限制具体Action上传文件大小的目的。
回到目录三、结语
本来感觉像是发现了一个文件上传的BUG,已经确认在1.0.1版本中已经进行了修复。在1.0.0版本中,如果Action没有设置一个IFromFile作为参数,那么Request.From.Files将不能访问并且报出异常。
相关文章推荐
- 解决ASP.NET Core Mvc文件上传限制问题
- 解决ASP.NET Core Mvc文件上传限制问题实例
- 解决ASP.NET Core Mvc文件上传限制问题
- 解决ASP.NET Core Mvc文件上传限制问题实例
- 解决ASP.NET Core Mvc文件上传限制问题
- 解决asp.net 以及MVC中上传文件大小限制的问题
- 解决asp.net 以及MVC中上传文件大小限制的问题
- ASP.NET中上传文件过大时限制上传问题的解决
- 如何解决ASP.NET中的文件上传大小限制的问题
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 解决Asp.net 上传文件过大限制问题
- 解决Asp.net 上传文件过大限制问题
- asp.net实现ftp上传代码(解决大文件上传问题)
- 解决Godaddy主机asp.net无法上传文件的问题
- 解决asp.net不能上传大文件的问题
- 【转载】解决ASP.NET上传文件大小限制
- 解决ASP.NET上传文件大小限制(超过大小限制,将不上传文件)补充:带进度条的大文件上传源程序
- 解决ASP.NET上传文件大小限制
- 解决ASP.NET上传文件大小限制
- 解决Godaddy主机asp.net无法上传文件的问题