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

处理报错:org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException

今天实现上传功能时突然发现报错,显示文件个数超限,让AI处理结果没处理好,那就只能人工介入了,发现请求总共就带了两三个文件,怎么会呢,前端代码附上

$.ajax({ url: "xxx", data: formData, type: 'POST', processData: false, contentType: false, success: function (data) { console.log(data) }, error: function () { console.log("提交失败") } })

报错现象如下

org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:132) at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:111) at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:87) at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:112) ... Caused by: org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:459) at org.apache.catalina.connector.Request.parseParts(Request.java:2650) at org.apache.catalina.connector.Request.getParts(Request.java:2536) at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:773) at jakarta.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:315) at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:94)

跟进org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(RequestContext)代码看看

仔细一看,发现multipart解析器将所有表单字段(包括普通文本字段)都计算在内,当总数超过服务器配置的限制时就会抛出异常

那就跟进引用代码org.apache.catalina.connector.Request.parseParts(boolean),发现跟maxParameterCount和maxPartCount有关

maxParameterCount默认值就很大,可忽略

那就是跟maxPartCount有关

那这就简单了,这个值可以通过配置文件配置处理

server: tomcat: max-part-count: 200 # 设置最大部件数量为200

重试,功能正常,问题解决

理论上不应该一次性把请求的文件跟表单一起提交,图省事是会这样

http://www.cnnetsun.cn/news/1895293.html

相关文章:

  • MySQL触发器中如何获取新插入值_MySQL触发器NEW关键字
  • IDEA如何使用教育网账号激活
  • 为什么你的Spring AI MCP Server总是断联?深入解析SSE连接超时问题
  • Spring Boot @Value 绑定 Set 失败?
  • 茉莉花插件完整教程:3步提升Zotero中文文献管理效率
  • Arthas + MCP:AI 终于把 Java 排查这件事变顺了
  • Chrome与Web标准演进:从“浏览器大战”到“兼容性基线”的深度解析
  • Go语言如何做WebSocket服务_Go语言WebSocket实时通信教程【对比】
  • 面试官问‘怎么测nn.Linear’?我现场写了个单元测试给他看(PyTorch版)
  • 基于ESP8266与ITR8307的智能车竞赛光电检测方案优化:抗干扰与远距离检测实践
  • 2026届必备的六大AI辅助论文工具推荐
  • OpenCV实战:用arcLength函数5分钟搞定轮廓周长计算(附完整C++代码)
  • Phi-4-Reasoning-Vision部署教程:解决显存溢出与流式解析混乱的3个关键步骤
  • 多类别语义分割中Loss函数的优化策略与实践
  • Android OTG有线网络终极指南:从硬件兼容到adb命令配置(附主流机型实测)
  • TypeScript数学算法大全:从斐波那契到质数筛法的完整实现
  • 终极指南:NOFX中7大AI模型(DeepSeek/Qwen/Claude)的完整对比分析
  • 论文ai率太高怎么办?盘点5款好用的降ai率工具(学姐亲测附使用教程)
  • 从安防到医疗:超分辨率(SISR)在6大真实场景的落地挑战与最新方案盘点
  • 腾讯会议回放视频过期了怎么办?亲测这款免费下载器,本地保存学习资料不求人
  • Squidex开发者深度指南:基于ASP.NET Core和CQRS的架构设计与扩展开发
  • BOXMOT工具箱深度评测:YOLOv8/YOLO-NAS/YOLOX三大检测器在MOT17数据集的表现对比
  • RimSort终极指南:告别模组冲突,打造完美边缘世界体验
  • 10个创意方向:探索stroll.js的CSS3滚动特效新可能
  • 2026届毕业生推荐的十大降AI率神器横评
  • 如何使用ngx-charts与d3.js构建高性能Angular数据可视化:完整指南
  • Qt6应用从构建到单文件发布的完整指南
  • Hermes-Agent 整体技术架构解析:模块化设计与运行时引擎
  • Wan2.1 VAE模型仓库管理:像使用Maven管理Java依赖一样管理模型版本
  • TwitchNoSub安全分析:为什么这个扩展值得信赖?