使用ASP.NET Core上传文件,可以参考官方文档: 使用缓冲模型绑定上传小文件到物理存储。
默认情况下,Windows IIS 将maxRequestLength和maxAllowedContentLength分别限制为 4096 KB 和 30,000,000 字节。要上传大于这些限制的文件,您需要覆盖网站根web.config文件中的默认设置并修改 ASP.NET Core 表单设置。
下面是一个如何修改Program.cs和web.config文件以增加最大文件上传大小的示例:
Program.cs
// using packages. // ... using Microsoft.AspNetCore.Http.Features;var builder = WebApplication.CreateBuilder(args);// Add services to the container. // ...builder.Services.Configure<IISServerOptions>(options=> {// 1024MBoptions.MaxRequestBodySize = 104857600; });builder.Services.Configure<FormOptions>(options => {// 1024MBoptions.MultipartBodyLengthLimit = 104857600; });var app = builder.Build();// ...
web.config
<?xml version="1.0" encoding="utf-8"?> <configuration><system.web><!-- change the max to 1024 MB --><httpRuntime maxRequestLength="104857600" /></system.web><system.webServer><security><requestFiltering><!-- change the max to 1024 MB --><requestLimits maxAllowedContentLength="104857600" /></requestFiltering></security></system.webServer> </configuration>
如果您的应用程序也使用Kestrel设置,您还应该像这样覆盖Program.cs文件中的默认设置:
// using packages. // ...var builder = WebApplication.CreateBuilder(args);builder.Host.ConfigureWebHostDefaults(webBuilder => {webBuilder.ConfigureKestrel((context, options) =>{options.Limits.MaxRequestBodySize = 104857600;}); });// Add services to the container. // ...
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。