Spring Cloud feign 多文件上传

应用场景

第三方调用的我的接口,上传若干个文件,我用MultiPartFile[]数组接收,之后我调用其他服务的接口,把文件发送过去,统一上传保存

问题:

当你使用feign传递MultipartFile对象时,接收方无法解析,所以,需要重写feignencoder,让它支持MultipartFile类型以及MultipartFile[]数组类型

 

引用maven依赖,版本不要过低:

Spring Cloud feign 多文件上传

客户端:

Spring Cloud feign 多文件上传

@FeignClient 调用:

Spring Cloud feign 多文件上传

红框所标,皆为重点;自己不理解百度去。

FeignSupportConfig:

Spring Cloud feign 多文件上传

⬆️ 注释那行是调用源码,因源码个人理解有点问题:

循环中的file.getname()作为map的key,当选择多个文件上传时:因file.getname()取值为一样。put 到map时最后一个永远会替换上一个;⬇️

Spring Cloud feign 多文件上传

终替换为:

直接把数组作为Map的value,实测 单文件多文件没问题;

Spring Cloud feign 多文件上传