SpringCloud使用Feign Form实现微服务之间的文件上传

1.pom依赖

复制代码
<dependency>
    <groupId>io.github.openfeign.form</groupId>
    <artifactId>feign-form</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>io.github.openfeign.form</groupId>
    <artifactId>feign-form-spring</artifactId>
    <version>3.0.1</version>
</dependency>
复制代码

 

2.MultipartSupportConfig配置类

复制代码
@Configuration
public class MultipartSupportConfig {
    @Autowired
    private ObjectFactory<HttpMessageConverters> messageConverters;

    @Bean
    public Encoder feignFormEncoder() {
        return new SpringFormEncoder(new SpringEncoder(messageConverters));
    }
}
复制代码

 

3.后端接口改造

关键字consumes = MULTIPART_FORM_DATA_VALUE

复制代码
/**
* 文件上传接口
* @param file 上传文件
* @date 2019-11-19 11:56:40
**/
@PostMapping(value = "uploadExamTarget", consumes = MULTIPART_FORM_DATA_VALUE)
public JsonResult uploadExamTarget(@RequestBody MultipartFile file) {
return new JsonResult(coreClient.uploadExamTarget(file));
}
复制代码

 

4.FeignClient接口改造

引入配置类MultipartSupportConfig,和接口注解consumes = MULTIPART_FORM_DATA_VALUE

复制代码
@FeignClient(value = "core-server", configuration = MultipartSupportConfig.class)
public interface CoreClient {  
  /**
   * 调用core-server服务的文件上传接口
   * @param file 上传文件
  * @date 2019-11-19 11:56:40
  **/
  @RequestMapping(value = "/excel/uploadExamTarget", consumes = MULTIPART_FORM_DATA_VALUE) 
  String uploadExamTarget(@RequestBody MultipartFile file);
}
复制代码

 

posted @   幻月hah  阅读(2994)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示