转载请注明出处:
项目为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)。