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

简介:

1.应用程序级别设置

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

复制代码

  1. public void ConfigureServices(IServiceCollection services)

  2. {

  3. services.Configure<FormOptions>(options =>

  4. {

  5. options.MultipartBodyLengthLimit = 60000000;

  6. });

  7. }

复制代码

  2.Action级别设置

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

复制代码

  1. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]

  2. public class RequestFormSizeLimitAttribute : Attribute, IAuthorizationFilter, IOrderedFilter

  3. {

  4. private readonly FormOptions _formOptions;


  5. public RequestFormSizeLimitAttribute(int valueCountLimit)

  6. {

  7. _formOptions = new FormOptions()

  8. {

  9. ValueCountLimit = valueCountLimit

  10. };

  11. }


  12. public int Order { get; set; }


  13. public void OnAuthorization(AuthorizationFilterContext context)

  14. {

  15. var features = context.HttpContext.Features;

  16. var formFeature = features.Get<IFormFeature>();


  17. if (formFeature == null || formFeature.Form == null)

  18. {

  19. // Request form has not been read yet, so set the limits

  20. features.Set<IFormFeature>(new FormFeature(context.HttpContext.Request, _formOptions));

  21. }

  22. }

  23. }

复制代码

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

本文转自  zddnd  51CTO博客,原文链接:http://blog.51cto.com/13013666/1939708

相关文章
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
35 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
48 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
42 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
3月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
113 0
|
6月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
178 0
|
6月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
75 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
162 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
96 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
165 0