使用dubbo远程调用微服务上传文件接口报错
原因:服务间使用dubbo的rpc远程调用,因为dubbo并不能跨系统传递MultipartFile对象
解决办法:
将MultipartFile对象转化为byte数组传递
例如:控制层接口
@ApiOperation("图片上传")
@PostMapping("/imgUpload")
public ResponseResult imgUpload(ImgDto imgDto, @RequestParam("file") MultipartFile file) throws Exception {
return accountOrdersService.imgUpload(imgDto, file.getBytes());
}
另一个服务的service层
@Override
public ResponseResult imgUpload(ImgDto imgDto,, byte[] imgBytes) {
InputStream inputStream = null;
try {
inputStream = new ByteArrayInputStream(imgBytes);
// 剩下的业务自己处理
}
return null;
}