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

embedded/2024/12/28 15:58:44/

        如果您正在使用 .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

上传文件的端点:

  • http://localhost:5014/upload — POST

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

重要的 

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

使用 .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

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


http://www.ppmy.cn/embedded/149479.html

相关文章

洪水灾害多智能体分布式模拟示例代码

1. 环境定义&#xff1a;支持灾害动态、地理数据和分布式架构 import numpy as np import random import matplotlib.pyplot as plt# 新疆主要城市及邻接关系 XINJIANG_CITIES {Urumqi: [Changji, Shihezi],Changji: [Urumqi, Shihezi, Turpan],Shihezi: [Urumqi, Changji, K…

USB免驱全协议IC卡读写器C#小程序开发

USB免驱全协议ic读卡器&#xff1a; 小程序UI界面&#xff1a; UI界面底代码&#xff1a; namespace WindowsFormsApplication1 {partial class Form1{/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.IContainer components n…

Python与黑客技术

Python与黑客技术&#xff1a;黑入他人电脑的风险与道德 在现代科技快速发展的背景下&#xff0c;Python作为一种功能强大且易于学习的编程语言&#xff0c;受到了许多开发者的青睐。尽管Python可以用来开发各种应用&#xff0c;但也有人好奇其是否能用于黑客行为&#xff0c;尤…

贪心算法(三)

目录 一、k次取反后最大化的数组和 二、优势洗牌 三、最长回文串 四、增减字符串匹配 一、k次取反后最大化的数组和 k次取反后最大化的数组和 贪心策略&#xff1a; 解题代码&#xff1a; class Solution { public:int largestSumAfterKNegations(vector<int>&am…

GB/T34944-2017 《Java语言源代码漏洞测试规范》解读——安全功能

GB/T34944-2017 《Java语言源代码漏洞测试规范》标准是软件测试实验室开展代码测试活动的重要依据&#xff0c;也是软件测试实验室申请代码测试CNAS/CMA实验室认证时所依据的标准方法。本系列文章一起解读GB/T34944-2017 《Java语言源代码漏洞测试规范》&#xff0c;前面的文章…

零信任安全体系研究

摘 要&#xff1a;随着业界对零信任安全理念的诠释不断更新&#xff0c;对其理论基础和核心技术的不断完善&#xff0c;使其逐步演变为覆盖云环境、大数据中心、微服务等场景的新一代安全架构。基于“以密码为基石、以身份为中心、以权限为边界、持续信任评估、动态访问控制”…

24 go语言(golang) - gorm框架安装及使用案例详解

一、简介 官方文档 GORM是一个用于Go语言的ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它简化了与数据库交互的过程。GORM支持多种数据库&#xff0c;包括MySQL、PostgreSQL、SQLite和SQL Server等。 1.1 关键特性 自动迁移&#xff1a;GORM可以根据结构体自动…

【Linux】Centos7下载npm

Index of /dist/v16.20.2/ (nodejs.org) 下载 wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.gz解压 sudo tar -zxvf node-v16.20.2-linux-x64.tar.gz 配置环境变量 sudo vim /etc/profile export NODE_HOME/usr/local/node-v16.20.2-linux-x64 ex…