the request was rejected because no multipart boundary was found

出现这个问题是因为传了两个Content-Type,其中一个把附件内容覆盖了

### Java 中解决 'the request was rejected because no multipart boundary was found' 当遇到 `the request was rejected because no multipart boundary was found` 的错误时,通常意味着客户端发送的请求不符合服务器端对于多部分表单数据(multipart/form-data)的要求。这可能是由于配置不当或请求构建不正确引起的。 #### 客户端配置 为了确保客户端能够正确地向服务端发送带有边界(boundary)的多部分请求,在使用 Axios 发送文件时应设置合适的参数: - **禁用自动 Content-Type 设置**:通过将 `headers['Content-Type']` 设定为 `false` 来阻止 Axios 自动推断并添加 Content-Type 头部信息[^3]。 ```javascript axios.post('/api/upload', formData, { headers: { 'Content-Type': false, } }); ``` 这样做可以让浏览器自行处理 Content-Type 和边界字符串的生成,从而避免手动指定可能导致的问题。 #### 服务端接口定义 在 Spring Boot 应用程序中接收文件上传请求时,应该注意以下几点来防止上述错误的发生: - **消费媒体类型声明**:明确指出该 API 只接受 `multipart/form-data` 类型的数据作为输入,并且可以通过 `consumes` 属性来进行限定[^4]。 ```java @PostMapping( value = "/batchUploadFile", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE} ) public CommonResult<List<FileUploadBatchRespDTO>> batchUploadFile( @RequestPart("files") MultipartFile[] files) {} ``` - 使用 `@RequestPart` 注解标注方法形参,以便框架能识别这些参数是从 HTTP 请求体中的特定部分获取而来。 此外,还需确认服务器端已经正确配置了用于解析多部分请求的相关组件和服务提供者,比如 Apache Commons FileUpload 或 Servlet 3.0+ 内置的支持功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值