当前位置: 首页 > 知识库问答 >
问题:

无法将多部分/表单数据从React发布到Spring

蒋阳华
2023-03-14

我想从React获取文件上传并将其发送到SpringBoot。我试图从React FormData发布,它将包含文件名和XML文件的键值对。因此,当我尝试将FormData发布到后端(即Springboot)时,它返回

.w.s.m.s.DefaultHandlerExceptionResolver : Resolved 
[org.springframework.web.HttpMediaTypeNotSupportedException: 
Content type 'application/json;charset=UTF-8' not supported]
handleSubmit = (e) => {
e.preventDefault();
console.log(this.state.file[0].name);
const formData = new FormData();
var i = this.state.file.length;
console.log(i);
for (var j = 0; j < i; j++) {
    formData.append(this.state.file[j].name, this.state.file[j])
}
for (var pair of formData.entries()) {
    console.log(pair[0] + ',' + pair[1]);
}

Axios.post('http://localhost:8080/upload', {
    file:formData
  })
  .then(response=>{
      console.log(response)
  })
  ;

这是我的Springboot控制器:

@CrossOrigin
@RequestMapping(value = "/upload", consumes = "multipart/form-data", method = RequestMethod.POST)
public String upload(@RequestParam("file") MultipartFile[] file) throws IOException {
    System.out.println(file.length);
    for(MultipartFile temp : file) {
        System.out.println(temp.getOriginalFilename());
        System.out.println(temp.getSize());
        File converted = new File(temp.getOriginalFilename());
        temp.transferTo(converted);
        System.out.println(converted.getTotalSpace());
    }
        return "blah";

}

我已经尝试在Axios post请求的头中指定multipart/form-data,但似乎不起作用。问题出在我的请求里还是出在我的控制器上?如果你有什么想法,请告诉我,我已经花了几个小时的时间来解决这个问题。

共有1个答案

鲜于致远
2023-03-14

在发送请求时尝试标头:{“content-type”:undefined},。并且确保在表单上有enctype=“multipart/form-data”

也请参阅

 类似资料:
  • 我使用Django REST API和Angular 6作为前端。 我在配置文件模型中定义了一个接受文件输入的ImageField。 在angular应用程序中,我从Base64图像数据生成File对象,并发送到endpoint,标题为Content-type:'multipart/form-data' 编辑2:代码 方法正在使用方法发送数据。

  • 所以这个HTML代码以正确的格式提交数据给我。 谢了!

  • 这几天我一直被这个问题难住了。如果有人能给我指出正确的方向,我将不胜感激!我一直在想如何通过facebooks graph api发布图像。 我从Facebook上下载了一张图片,它通过图形API显示在画布元素中。我正在修改这个元素,在上面画文本,然后想把它上传回facebook。我被上传卡住了。 以下是我看过的有帮助的链接,但我仍然卡住了: Facebook Graph API——使用JavaS

  • 问题内容: 我正在使用请求库编写Web Service客户端。我正在包含文件和text-json的multipart / form- data中获取数据。我不知道如何解析它。是否有合适的库可以解析python中的multipart / form-data格式,还是我应该自己编写解析器? 我的代码: b’\ r \ n–c00750d1-8ce4-4d29-8390-b50bf02a92cc \ r

  • 我已经创建了一个使用“多部分/表单数据”的控制器 采样器请求对象 现在,我将尝试使用模拟MVC测试它,但我不知道如何将“多部分/表单数据”作为内容传递。我看到很多使用JSON的示例,但没有使用多部分/表单数据 有没有一种方法可以完成我的请求与多部分/form_data?理想情况下,它需要在MockHttpServletRequest的主体中

  • 谢谢你过来。 我想使用fetch api发送一个作为请求的 手术看起来像这样 这里的问题是边界,比如 永远不要将其放入标题中 应该是这样的 当您使用尝试“相同”操作时,如下所示 标题设置正确 所以我的问题是, > 在这种情况下,我如何使的行为完全像? 如果这不可能,为什么? 谢谢大家!这个社区或多或少是我职业成功的原因。