You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从PowerAutomate上传文件至SpringBoot HTTPS API时遇Multipart解析异常

PowerAutomate调用SpringBoot文件上传API报错问题解决

问题详情

遇到异常:

"errorMsg": "Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.FileUploadException: Header section has more than 10240 bytes (maybe it is not properly terminated)"

该API在Postman和Angular环境下可正常工作,API核心代码如下:

@PostMapping(value = "/v1.0/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Void> import(
               @RequestHeader(AirportConstant.AIRPORT_HEADER) String auth,
               @RequestParam("file") MultipartFile file,
               @RequestParam("userId") String userId,
               @RequestParam(value = "icao") String icao,
               @RequestParam(value = "entity", required = false) String entity) throws GlobalException {
        LOGGER.info("::  entering into  import ::");

当前PowerAutomate的请求配置:

  • 请求头:Content-Type: multipart/form-data; boundary=--airMaster34
  • 查询参数:userId: check,icao: KORD
  • 手动构造的multipart请求体:
----airMaster34
Content-Disposition: form-data; name=\"userId\"

check
----airMaster34
Content-Disposition: form-data; name=\"icao\"

KORD
----airMaster34
Content-Disposition: form-data; name=\"file\"; filename=\"small.ascii\"
Content-Type: application/octet-stream

 <file content in byte>
----airMaster34--

解决方案

  • 修正Boundary格式
    请求头中的boundary不需要添加--,正确写法应为:
Content-Type: multipart/form-data; boundary=airMaster34

multipart请求体中的分隔线(----airMaster34)格式是正确的,请求头多带的--会导致Tomcat解析混乱,触发头部字节数超限错误。

  • 移除重复参数
    目前同时在查询参数和multipart表单中传递了userId、icao,这会造成请求头部冗余,超出默认限制。建议统一将所有参数放到multipart表单中传递,和file参数保持一致。

  • 规范换行符
    确保multipart请求体的各个部分之间使用**CRLF(\r\n)**换行,避免只使用LF(\n)。PowerAutomate手动构造内容时容易出现换行符不标准的情况,会导致Tomcat无法正确识别头部结束位置,误判为头部过长。

  • 临时调整Tomcat参数(可选)
    若以上方法无效,可临时修改SpringBoot配置,加大Tomcat的头部大小限制:
    在application.properties中添加:

server.tomcat.max-http-header-size=20480
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.max-file-size=10MB

注意这只是临时 workaround,优先修复请求构造问题更合理。

内容的提问来源于stack exchange,提问作者Mohammed Imran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:25:04