如何在 ASP.NET Core 中提高最大文件上传大小?
问题:
在 ASP.NET Core MVC 6 中,如何将最大文件上传大小增加到无限制?
解决方案:
ASP.NET Core 2.0 及更高版本通过 Kestrel 服务器增加了额外的文件大小限制,这与 IIS 限制是分开的。要增加文件上传大小,您可以使用以下方法之一:
RequestSizeLimit 属性:
对于特定的 MVC 操作或控制器,您可以使用 RequestSizeLimit
属性来设置最大请求正文大小限制。例如,要将 MyController
控制器的 MyAction
方法的限制设置为 100,000,000 字节:
<code class="language-csharp">[HttpPost] [RequestSizeLimit(100_000_000)] public IActionResult MyAction([FromBody] MyViewModel data) { //... }</code>
IHttpMaxRequestBodySizeFeature 中间件:
要为 MVC 操作未处理的请求按每个请求的基础配置限制,请使用 IHttpMaxRequestBodySizeFeature
:
<code class="language-csharp">app.Run(async context => { context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 100_000_000; });</code>
全局配置:
要全局更改最大请求正文大小,请在 Startup.Configure
方法中的 UseKestrel
或 UseHttpSys
回调中修改 MaxRequestBodySize
属性:
<code class="language-csharp">// Kestrel app.UseKestrel(options => { options.Limits.MaxRequestBodySize = null; }); // HttpSys app.UseHttpSys(options => { options.MaxRequestBodySize = 100_000_000; });</code>
在 Kestrel 配置中将 MaxRequestBodySize
设置为 null
或在 HttpSys 配置中设置为 0 将禁用请求正文大小限制。
以上是如何在ASP.NET Core中增加最大文件上传大小?的详细内容。更多信息请关注PHP中文网其他相关文章!