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