通过 Feign 进行文件上传

简介: 通过 Feign 进行文件上传

转载请注明出处:

  项目为spring cloud 项目,项目中对各部分能力业务进行了拆分,将公共的服务能力放在一个模块当中,通过

Feign 的方式 进行调用,feign 调用的本质还是http内部通信请求,实现模块之间的调用。

  通过feign进行文件上传时,feign 侧示例代码如下:

@FeignClient
public interface UploadClient {
  @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  String uploadFile(@RequestPart(value = "file") MultipartFile file, @RequestParam String uploadPath);
}

文件属性需要使用 @RequestPart 属性,而且在请求中添加 consumes = MediaType.MULTIPART_FORM_DATA_VALUE ,

文件表单上传请求通常使用的ContentType为 multipart/form-data ,通过以上直接调用feign的方式即可实现feign 文件上传

以下为 @RequestPart 与 @RequestParam 的区别:

1. @RequestPart这个注解用在multipart/form-data表单提交请求的方法上。

2. 支持的请求方法的方式MultipartFile,属于Spring的MultipartResolver类。这个请求是通过http协议传输的。

3. @RequestParam也同样支持multipart/form-data请求。

4. 他们最大的不同是,当请求方法的请求参数类型不再是String类型的时候。

5. @RequestParam适用于name-valueString类型的请求域,@RequestPart适用于复杂的请求域(像JSON,XML)。

目录
相关文章
|
JSON 数据格式
Feign调用文件下载服务接口实例
Feign调用文件下载服务接口实例
1590 0
Feign调用文件下载服务接口实例
|
前端开发
File和MultipartFile互相转化工具类
File和MultipartFile互相转化工具类
2453 0
|
6月前
|
人工智能 缓存 负载均衡
spring boot-MultipartFile 机制
本文详解了 Spring Boot 中 MultipartFile 的工作机制及大文件上传的解决方案。内容涵盖 MultipartFile 的解析流程、上传配置、Feign 上传大文件的内存问题及基于 RestTemplate 的流式上传实现。同时介绍了服务器端如何直接处理 application/octet-stream 类型的文件流,避免内存溢出问题。适合需要优化文件上传性能的开发者参考。
794 0
|
JSON 数据格式
@SpringQueryMap 、@RequestPart 、@RequestParam 比较与说明
@SpringQueryMap 、@RequestPart 、@RequestParam 比较与说明
1442 2
|
前端开发 Java 微服务
SpringCloud微服务之间传输文件
SpringCloud微服务之间传输文件
503 1
|
Java API 开发者
【已解决】Spring Cloud Feign 上传文件,提示:the request was rejected because no multipart boundary was found的问题
【已解决】Spring Cloud Feign 上传文件,提示:the request was rejected because no multipart boundary was found的问题
1913 0
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
31862 0
|
Java
java中File转为MultipartFile的问题解决
java中File转为MultipartFile的问题解决
832 2
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
1377 1
|
Java Spring
解决SpringBoot中@RequestBody不能和Multipart同时传递的问题
请根据你的实际需求选择上述方法之一来解决Spring Boot中 `@RequestBody`不能和 `Multipart`同时使用的问题。
2187 1