网站建设资讯

NEWS

网站建设资讯

解决ASP.NETCoreMvc文件上传限制问题

1.应用程序级别设置

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

我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、乳山ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的乳山网站制作公司

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

  1. public void ConfigureServices(IServiceCollection services)

  2. {

  3. services.Configure(options =>

  4. {

  5. options.MultipartBodyLengthLimit = 60000000;

  6. });

  7. }

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

  2.Action级别设置

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

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

  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();

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

  18. {

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

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

  21. }

  22. }

  23. }

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

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


分享名称:解决ASP.NETCoreMvc文件上传限制问题
文章出自:http://cdweb.net/article/gcopdi.html