资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

解决ASP.NETCoreMvc文件上传限制问题-创新互联

1.应用程序级别设置

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

10年积累的网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有南漳免费网站建设让你可以放心的选择与我们合作。

解决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上传文件大小的目的。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


网页题目:解决ASP.NETCoreMvc文件上传限制问题-创新互联
URL标题:http://cdkjz.cn/article/edpeh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220