springboot接收图片报错 request is not a multipart request 和 multipart boundary was found

后台接收图片报错 request is not a multipart request 和 multipart boundary was foundrequest is not a multipart request 可能是因为前端没有指定请求头 Content-Type 为 multipart/form-data ,但是这个请求头不必在headers中指定。如果直接在headers中指定,后端会因为检测不到 multipart boundary 而报错 the request was rejected
摘要由CSDN通过智能技术生成

后台接收图片报错 request is not a multipart request 和 multipart boundary was found

request is not a multipart request 可能是因为前端没有指定请求头 Content-Type 为 multipart/form-data ,但是这个请求头不必在headers中指定。

如果直接在headers中指定,后端会因为检测不到 multipart boundary 而报错 the request was rejected because no multipart boundary was found 我们需要使用formData自动配置

FormData 接口提供了一种表示表单数据的键值对 key/value 的构造方式,并且可以轻松的将数据通过XMLHttpRequest.send() 方法发送出去,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 "multipart/form-data",它会使用和表单一样的格式。

———— https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

解决方案

前端:

          // 这种方式会自动配置 multipart boundary
					let formData = new FormData()
          formData.append('file', data, 'file.png')
          //调用接口
          const xmlhttp = new XMLHttpRequest()
          xmlhttp.open('POST', 'http://localhost:8080/user/upload/avatar', true)
          xmlhttp.send(formData)
          xmlhttp.onreadystatechange = function () {
   
						// 请求发送之后的回调
          }

formData.append(name, value, filename);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用Postman调用Java API进行文件上传时,遇到"the request was rejected because no multipart boundary was found"错误,通常表示Postman发送的HTTP请求头中没有正确设置Multipart/form-data边界(multipart boundary),这是用来分隔不同部分(如请求体中的文本和二进制数据)的标准。 在Java中,特别是处理表单数据(包括文件上传)时,服务器期望接收到一个包含边界标识的Multipart请求。以下是一些可能的原因和解决步骤: 1. **检查请求配置**:确保在Postman的`Form Data`或者`File`选项下,已设置`Content-Type`为`multipart/form-data`。并且有一个有效的`Boundary`值,通常会自动生成或手动指定一个随机的字符串。 2. **设置边界**:在Postman中,点击`Headers`选项卡,在`Content-Type`字段的值旁边,应看到一个`Boundary`字段,确保它的值是存在的,并且格式正确(例如:`multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gWg`)。 3. **文件字段配置**:对于上传的文件,确保选择正确的文件,然后设置`key`(通常是文件名),并将`value`设置为文件路径。 4. **确认编码**:如果文件内容是UTF-8以外的编码,确保在Postman中选择了正确的字符编码。 5. **代码验证**:如果你在服务器端处理上传,检查处理POST请求的Java代码是否正确解析了multipart请求,包括边界、文件部分等。 相关问题-- 1. 什么是Multipart/form-data? 2. 如何在Java代码中处理multipart请求? 3. Postman如何设置HTTP请求头?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值