SpringCloud + Feign Multipartfile文件上传,Current request is not a multipart request报错解决


由上可知,报错提示当前请求不是一个 multipart request, 原因是在feign中,发送 multipartfile文件,应该使用【@RequestPart】而不是【@RequestParam】,且需要设置请求content-type为【multipart/form-data】,所以正确写法如下

在引入配置好Feign前提下

1.创建  FeignMultipartSupportConfig.class 配置文件

 1 @Configuration
 2 public class FeignMultipartSupportConfig {
 3 
 4     @Bean
 5     @Primary
 6     @Scope("prototype")
 7     public Encoder multipartFormEncoder() {
 8         return new SpringFormEncoder();
 9     }
10 
11     @Bean
12     public feign.Logger.Level multipartLoggerLevel() {
13         return feign.Logger.Level.FULL;
14     }
15 
16 }

2.编写  FeignClient

MultipartFile 类型参数使用 @RequestPart注解,字符串参数使用注解 @RequestParam

定义 consumes = MediaType.MULTIPART_FORM_DATA_VALUE

 1 @FeignClient(value = "maven模块的名字", fallback = FeignClientFallback.class,configuration = {FeignMultipartSupportConfig.class})
 2 //@FeignClient
 3 public interface FeignClientService {
 5     @PostMapping(value ="/oss/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
 6     @ResponseBody
 7     JSONObject upload(@RequestPart("file") MultipartFile file,@RequestParam("path") String path);

 

3.搞定


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM