使用 .NET 6 或 .NET 8 上传大文件

如果您正在使用 .NET 6,并且它拒绝上传大文件,那么本文适合您。

我分享了一些处理大文件时需要牢记的建议,以及如何根据我们的需求配置我们的服务,并提供无限制的服务。

本文与 https://blog.csdn.net/hefeng_aspnet/article/details/144497878 相同,但使用的是 .NET 8。

为了使服务支持大量文件上传,您必须修改program.cs:

builder.WebHost.UseKestrel(o => o.Limits.MaxRequestBodySize = null);

builder.Services.Configure<FormOptions>(x =>

{

x.ValueLengthLimit = int.MaxValue;

x.MultipartBodyLengthLimit = int.MaxValue;

x.MultipartBoundaryLengthLimit = int.MaxValue;

x.MultipartHeadersCountLimit = int.MaxValue;

x.MultipartHeadersLengthLimit = int.MaxValue;

});

  • Program.cs 文件如下所示:

using Microsoft.AspNetCore.Http.Features;

var builder = WebApplication.CreateBuilder(args);

//Set MaxRequestBodySize to null

builder.WebHost.UseKestrel(o => o.Limits.MaxRequestBodySize = null);

// Add services to the container.

builder.Services.AddControllers();

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle

builder.Services.AddEndpointsApiExplorer();

builder.Services.AddSwaggerGen();

//Set Values by default

builder.Services.Configure<FormOptions>(x =>

{

x.ValueLengthLimit = int.MaxValue;

x.MultipartBodyLengthLimit = int.MaxValue;

x.MultipartBoundaryLengthLimit = int.MaxValue;

x.MultipartHeadersCountLimit = int.MaxValue;

x.MultipartHeadersLengthLimit = int.MaxValue;

});

var app = builder.Build();

// Configure the HTTP request pipeline.

if (app.Environment.IsDevelopment())

{

app.UseSwagger();

app.UseSwaggerUI();

}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

要运行该服务:

dotnet run

https://本地主机:7161/swagger

上传文件的端点:

通过这些改变,该服务已经支持大文件。

重要的

考虑服务运行的资源非常重要。

使用 .Net Core 3.1 或 .Net Core 5.0 上传大文件 UploadLargeFiles 示例代码:https://download.csdn.net/download/hefeng_aspnet/90138207

使用 .Net 6.0 或 .Net 8.0 上传大文件 UploadLargeFiles 示例代码:

https://download.csdn.net/download/hefeng_aspnet/90138397

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

相关推荐
csdn_aspnet13 小时前
.Net 6.0 .Net7.0 .Net8.0 .Net9.0 使用 Serilog 按日志等级写入日志及 appsetting.json 配置方式实现
.net6.0·serilog·.net9.0
csdn_aspnet1 个月前
.NET 6.0 中接入 Log4net 和 NLog
log4net·nlog·.net6.0
csdn_aspnet1 个月前
在.NET 6中使用Serilog收集日志
webapi·.net6.0
csdn_aspnet3 个月前
.NET 8 中 Entity Framework Core 的使用
efcore·ef·.net8.0
csdn_aspnet3 个月前
.NET 8 Web API 中的身份验证和授权
webapi·.net8.0
csdn_aspnet3 个月前
在 .NET 8 Web API 中实现 Entity Framework 的 Code First 方法
webapi·.net8.0
csdn_aspnet3 个月前
.NET 8 中的 Mini WebApi
webapi·.net8.0
csdn_aspnet3 个月前
使用 ASP.NET Core 8.0 创建最小 API
webapi·.net8.0
csdn_aspnet3 个月前
ASP.NET Core 8.0 中使用 Hangfire 调度 API
1024程序员节·hangfire·.net8.0