当前位置: 首页 > 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即时通讯聊天系统源码
  • extract-text-webpack-plugin用法
  • go语言学习初探(一)
  • javascript面向对象之创建对象
  • JavaScript学习总结——原型
  • JS实现简单的MVC模式开发小游戏
  • LeetCode算法系列_0891_子序列宽度之和
  • Python3爬取英雄联盟英雄皮肤大图
  • zookeeper系列(七)实战分布式命名服务
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 大型网站性能监测、分析与优化常见问题QA
  • 对JS继承的一点思考
  • - 概述 - 《设计模式(极简c++版)》
  • 目录与文件属性:编写ls
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 写代码的正确姿势
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • # Java NIO(一)FileChannel
  • # 数论-逆元
  • #FPGA(基础知识)
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (poj1.3.2)1791(构造法模拟)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (未解决)macOS matplotlib 中文是方框
  • (转)VC++中ondraw在什么时候调用的
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net web项目 调用webService
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [Apio2012]dispatching 左偏树
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法
  • [CSS]CSS 的背景
  • [github全教程]github版本控制最全教学------- 大厂找工作面试必备!
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [leetcode] Balanced Binary Tree
  • [LeetCode] Ransom Note 赎金条
  • [python基础] python 2与python 3之间的区别 —— round