springboot微服务间上传文件
springboot微服务之间通常使用feign进行接口调用,那么在此基础上文件上传如何操作呢?
最近项目中碰到了这种需求,此处分享一下使用心得,希望对大家有帮助!!!
一、我这里使用的相关包如下,其它的大家视情况而定
<dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form-spring</artifactId> <version>3.3.0</version> </dependency>
二、配置文件相关配置如下:
spring:
servlet:
multipart:
enabled: true # 启用上传处理,默认是true
file-size-threshold: 1MB # 当上传文件达到1MB的时候进行磁盘写入
max-request-size: 100MB # 设置最大的请求文件的大小
max-file-size: 2MB # 设置单个文件的最大长度
三、启动加载相关配置
@Configuration public class FeignMultipartSupportConfig { @Autowired private ObjectFactory<HttpMessageConverters> messageConverters; @Bean public Encoder feignFormEncoder() { return new SpringFormEncoder(new SpringEncoder(messageConverters)); } }
四、调用方Feign接口
@FeignClient(name = "ms-merchant-basis-server") public interface AttachmentFegin { @PostMapping(value = "/api/upload/image", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ApiOperation(value = "上传图片,文件不能为空,大小不能超过10M") PicVo uploadImage(@RequestPart("file") MultipartFile file); }
注:
consumes:必须使用 MediaType.MULTIPART_FORM_DATA_VALUE
produces:接口多参数时增加此配置 MediaType.APPLICATION_JSON_UTF8_VALUE
@RequestPart:服务调用方接口文件类型使用此注解
五、被调用方Controller接口
@RequestMapping(value = "/api/upload/image", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "上传图片,文件不能为空,大小不能超过10M") public void uploadImage(@RequestParam("file") MultipartFile file) {}
注:
@RequestParam :此注解包含@RequestPart,但是@RequestPart不包含@RequestParam
最后给大家来张宅男图片缓解一下眼睛
分类:
Springboot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通