OpenFeign调用服务传输Multipartfile文件的正确方式,Current request is not a multipart request报错解决

今天在写上头像功能的时遇到一个问题,一开始看到是超时。搜了一下百度,以为是文件太大导致超时,但是我看了一下我的Appliaction.yml知道不是大小的问题。然后我看被调用的微服务,报错:Current request is not a multipart request。

一般参数的写法是:

@RequestMapping(value="IconUpload")
public String IconUpload(@RequestParam("file") MultipartFile[] file)

在网上搜很多是这样写的,在不调用微服务的时候这样写是可以的。但是现在通过OpenFeign调用其他的微服务,原因是在openfeign中,发送 multipartfile文件,应该使用@RequestPart而不是@RequestParam。所以是注解写错了

正确写法:

@RequestMapping(value="IconUpload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String IconUpload(@RequestPart("file") MultipartFile[] file)

consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

1.@RequestPart这个注解用在multipart/form-data表单提交请求的方法上。
2.支持的请求方法的方式MultipartFile,属于Spring的MultipartResolver类。这个请求是通过http协议传输的。
3.@RequestParam也同样支持multipart/form-data请求。
4.他们最大的不同是,当请求方法的请求参数类型不再是String类型的时候。
5.@RequestParam适用于name-valueString类型的请求域,@RequestPart适用于复杂的请求域(像JSON,XML)。

参考:Feign传输Multipartfile文件的正确方式,Current request is not a multipart request报错解决_hehe的博客-CSDN博客
https://segmentfault.com/a/1190000019732437?utm_source=tag-newest

@RequestMapping详解_第八个猴子的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值