依赖包可以使用 oepnfeign
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
引入依赖(如果引入了 openfein, 以下包应该是自动包含的):
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form</artifactId>
</dependency>
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form-spring</artifactId>
</dependency>
服务端:
@PostMapping(value="/upload")
public String upload(@RequestParam("file") MultipartFile file, @RequestParam("fileName") String fileName) {
return "ok" + fileName;
}
客户端:
@FeignClient(name = "user-provider", configuration = MultipartSupportConfig.class)
public interface ConsumerApi {
@PostMapping(value="/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String upload(@RequestPart("file") MultipartFile file, @RequestParam("fileName") String fileName);
}
配置类,必须得有,不然解析不了
public class MultipartSupportConfig {
@Bean
@Primary
public Encoder feignFormEncoder() {
return new SpringFormEncoder();
}
}
真正使用时:
@RequestMapping(value="/upload")
@ResponseBody
public String upload(@RequestPart("file") MultipartFile file, @RequestParam("fileName")String fileName) {
return consumerApi.upload(file, fileName);
}
示例: