在使用微服务架构项目时,文件上传、下载等类通常与各业务隔离开,放在共用工具服务common中。那么在各业务需要调用文件上传下载时,就需要通过feign跨服务调用。
跨服务调用时,有以下两种传递入参方式:
1.file文件
注意file的注解是@RequestPart
// 需要配置,否则接收的file会是空
@PostMapping(value = "/upload-af-file", produces = MediaType.APPLICATION_JSON_UTF8_VALUE,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String uploadAfFile(@RequestPart MultipartFile file);
@Override
String uploadAfFile(MultipartFile file) {
// ... 省略文件上传代码
}
2.字节数组
// feignApi
@PostMapping(value = "/getFileSerialIdByUploadStream")
String uploadFileBy(@RequestParam byte[] bytes);
@Override
public String uploadFileBy(byte[] bytes) {
// 创建inputStream流
InputStream inputStream = new ByteArrayInputStream(bytes);//将inputStream流写成文件(查看文件内容是否正确)
//...省略上传文件代码
}