微服务之间的文件上传
Feign
在Spring Cloud 的Feign组件中并不支持文件的传输,可以通过配置的方式实现,这里不赘述,本篇主要使用的是restTemplate实现
RestTemplate
restTemplate转发接收的文件,直接上传
public Object fileUp(MultipartFile file) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
parts.add("file",file.getResource());
parts.add("acl", “dd”);
RestTemplate restTemplate = new RestTemplate();
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(parts, headers);
Object object = restTemplate.postForEntity(path,httpEntity,Object.class);
return object;
}
注意:
file:为前端传过来的文件,必须file.getResource();
headers:为请求头,类型设置为MediaType.MULTIPART_FORM_DATA
parts: 可以设置参数
path:为调用的其他微服务的地址和请求路径,如http://localhost:9636/putFile,其中的putFile为其他服务接口的mapping路径