当前位置: 首页 > news >正文

.net6解除文件上传限制。Multipart body length limit 16384 exceeded

在C#中上传文件时如果不修改默认文件的上传大小会提示Multipart body length limit 16384 exceeded这个错误提示表明你的请求中的Multipart body长度超过了16384字节的限制。这通常意味着你正在尝试发送一个太大的请求体,可能是因为包含了太多数据或者太大的文件。要解决这个问题,你可以尝试减少请求体的大小,或者使用其他方法来传输大量数据,比如分块上传或压缩数据。另外,你也可以查看服务端的配置,看是否可以调整Multipart body长度的限制。

在.net6中可以 修改Program.cs文件,添加以下代码

ps:以下代码要添加到var app = builder.Build();之前

builder.WebHost.UseKestrel(options =>
{options.Limits.MaxRequestLineSize = 10 * 1024 * 1024;//HTTP 请求行的最大允许大小。 默认为 8kboptions.Limits.MaxRequestBufferSize = 10 * 1024 * 1024;//请求缓冲区的最大大小。 默认为 1M//任何请求正文的最大允许大小(以字节为单位),默认 30,000,000 字节,大约为 28.6MBoptions.Limits.MaxRequestBodySize = 10 * 1024 * 1024;//限制请求长度});//上传文件限制
builder.Services.Configure<FormOptions>(x => {x.MultipartBodyLengthLimit = 10 * 1024 * 1024; // 10MB  x.MemoryBufferThreshold = 1024 * 1024; // 1MB  
});

然后在api方法上标注[DisableRequestSizeLimit]特性

在C#中,[DisableRequestSizeLimit]特性是用于禁用请求大小限制的。当应用程序使用ASP.NET Core处理请求时,可能会受到请求大小限制的影响,这可能会导致一些大型请求被拒绝或截断。使用[DisableRequestSizeLimit]特性可以禁用请求大小限制,允许应用程序处理大型请求而不受限制。这在处理大型文件上传或其他需要处理大型请求的情况下非常有用。

[HttpPost]
[DisableRequestSizeLimit]
public async Task<dynamic> UploadFileAsync()
{string fileName = "";string fullPath = "";string fileType = "";string Rotate = "0"; string Angle = "";try{if (Request.Form.Files.Count == 0) return Ok(new { ok = false, message = $"Upload Failed:没有文件." });var file = Request.Form.Files[0];if (file.Length < 1) return Ok(new { ok = false, message = $"Upload Failed:文件为空." });//代码逻辑}catch (Exception ex)
{Log.Error("Upload Failed.===" + "类型:" + fileType + "   文件名:" + fileName + "  失败原因:" + ex.Message );return Ok(new { ok = false, message = $"Upload Failed:{ex.Message}" });
}

相关文章:

  • [论文阅读]4DRadarSLAM: A 4D Imaging Radar SLAM System for Large-scale Environments
  • Flutter中的Tree
  • 力扣188. 买卖股票的最佳时机 IV
  • cissp 第10章 : 物理安全要求
  • PHP中excel带图片数据导入
  • Centos 磁盘挂载和磁盘扩容(新加硬盘方式)
  • <HarmonyOS第一课>1~10课后习题汇总
  • 使用HttpSession和过滤器实现一个简单的用户登录认证的功能
  • ControlNet构图控制
  • PCL 格网法计算点云的占地面积
  • React16源码: React中创建更新的方式及ReactDOM.render的源码实现
  • 收到的字符串写入xml并且将这个xml写入.zip文件中
  • 【设计模式】工厂模式
  • 【动态规划】C++算法:446等差数列划分 II - 子序列
  • 带前后端H5即时通讯聊天系统源码
  • 【node学习】协程
  • 【剑指offer】让抽象问题具体化
  • Angular Elements 及其运作原理
  • canvas 五子棋游戏
  • Java读取Properties文件的六种方法
  • js递归,无限分级树形折叠菜单
  • mysql 5.6 原生Online DDL解析
  • Mysql5.6主从复制
  • python docx文档转html页面
  • sessionStorage和localStorage
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 容器服务kubernetes弹性伸缩高级用法
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 小试R空间处理新库sf
  • 鱼骨图 - 如何绘制?
  • !!Dom4j 学习笔记
  • (12)Linux 常见的三种进程状态
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)Eureka服务搭建,服务注册,服务发现
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (转)socket Aio demo
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .net经典笔试题
  • /etc/fstab和/etc/mtab的区别
  • [Android] Amazon 的 android 音视频开发文档
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [C++] 统计程序耗时
  • [CTO札记]如何测试用户接受度?
  • [C语言]——函数递归
  • [js]js设计模式小结
  • [linux c]linux do_div() 函数用法
  • [LuoguP1141]01迷宫
  • [LVGL]:MACOS下使用LVGL模拟器
  • [NOIP2013]华容道
  • [oeasy]python001_先跑起来_python_三大系统选择_windows_mac_linux
  • [OpenWrt]RAX3000一根线实现上网和看IPTV