解决SpringBoot中@RequestBody不能和Multipart同时传递的问题

46 篇文章 5 订阅
38 篇文章 3 订阅

问题描述

今天在做文件上传的时候,遇到了这么一个错误日志:

在这里插入图片描述

Resolved[org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘multipart/form-data;boundary=--------------------------771899451541318130280588;charset=UTF-8’ not supported]

在这里插入图片描述

分析问题

从日志中可以发现,好像是因为@RequestBody不能和MultipartFile一起使用。

这是因为我需要的是json的数据类型,但是传了json数据的同时也传了其它类型的值,很明显我就是又传了MultipartFile文件类型参数。

后来经过我大量搜索和测试,这里基本上是敲定了下面的结论:

@RequestBody不能和Multipart同时用

解决问题

如果想用解决这种问题,我目前想到的办法就是不使用@RequestBody和Multipart一起操作,既然需要的是json-body的格式,那么我们就可以反其道而行之,使用form-data的格式

需要和前端约定好方式,最好不要完全自己定义!

简单调整下代码:

在这里插入图片描述

在这里插入图片描述

重启服务,这下就要改下传参方式了:

可以发现,问题解决。

在这里插入图片描述

总结

虽然问题解决了。但是不太符合我的初衷,我的初衷还是希望使用@RequestBody进行传递参数而不是改变已有的方式

碍于时间问题,先把这个问题问题放一放,后面我会继续尝试,如果有新的突破,再回来更新

虽然这种方式不是特别的友好,但是也是可以解决问题的。

希望可以帮助到您!

  • 48
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 74
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 74
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小花皮猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值