如何突破ASP.NET Core Mvc文件上传大小限制,实现大文件高效上传?

2026-03-31 07:491阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计635个文字,预计阅读时间需要3分钟。

如何突破ASP.NET Core Mvc文件上传大小限制,实现大文件高效上传?

一、简介在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB。如果您想上传更大的文件,但又没有Web.Config文件,应该如何操作呢?

二、设置上传文件大小

1.在ASP.NET Core MVC项目中,如果没有Web.Config文件,可以通过修改Startup.cs文件来设置上传文件的大小。

2.在Startup.cs中找到以下代码段:

csharp

public void ConfigureServices(IServiceCollection services){ // 其他服务配置...

// 添加MVC服务 services.AddControllersWithViews();

// 设置上传文件的最大大小 services.Configure(options=> { options.MaxRequestSize=209715200; // 设置为200MB });}

3. 修改`options.MaxRequestSize`的值,将其设置为所需的文件大小(以字节为单位)。在上面的例子中,我们将最大上传文件大小设置为200MB。

4. 保存Startup.cs文件,重新启动应用程序,现在就可以上传更大的文件了。

一、简介

在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢?

二、设置上传文件大小

1.应用程序级别设置

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

public void ConfigureServices(IServiceCollection services) { servicesConfigure<FormOptions>(options => { optionsMultipartBodyLengthLimit = 60000000; }); }

2.Action级别设置

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

如何突破ASP.NET Core Mvc文件上传大小限制,实现大文件高效上传?

[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<IFormFeature>(); if (formFeature == null || formFeatureForm == null) { // Request form has not been read yet, so set the limits featuresSet<IFormFeature>(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将不能访问并且报出异常。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计635个文字,预计阅读时间需要3分钟。

如何突破ASP.NET Core Mvc文件上传大小限制,实现大文件高效上传?

一、简介在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB。如果您想上传更大的文件,但又没有Web.Config文件,应该如何操作呢?

二、设置上传文件大小

1.在ASP.NET Core MVC项目中,如果没有Web.Config文件,可以通过修改Startup.cs文件来设置上传文件的大小。

2.在Startup.cs中找到以下代码段:

csharp

public void ConfigureServices(IServiceCollection services){ // 其他服务配置...

// 添加MVC服务 services.AddControllersWithViews();

// 设置上传文件的最大大小 services.Configure(options=> { options.MaxRequestSize=209715200; // 设置为200MB });}

3. 修改`options.MaxRequestSize`的值,将其设置为所需的文件大小(以字节为单位)。在上面的例子中,我们将最大上传文件大小设置为200MB。

4. 保存Startup.cs文件,重新启动应用程序,现在就可以上传更大的文件了。

一、简介

在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢?

二、设置上传文件大小

1.应用程序级别设置

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

public void ConfigureServices(IServiceCollection services) { servicesConfigure<FormOptions>(options => { optionsMultipartBodyLengthLimit = 60000000; }); }

2.Action级别设置

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

如何突破ASP.NET Core Mvc文件上传大小限制,实现大文件高效上传?

[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<IFormFeature>(); if (formFeature == null || formFeatureForm == null) { // Request form has not been read yet, so set the limits featuresSet<IFormFeature>(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将不能访问并且报出异常。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。