工作中遇到了一个网关接收multipartFile类型图片,然后转发到后台服务的需求,项目是基于springCloud的分布式框架,要求在网关层接收到服务后,组装相关信息,再转发到后台服务作具体处理,转发方式通过restTemplate调用,代码如下:
网关层接收:
@ApiOperation(value = "图片上报")
@PostMapping(value = "/upload/img/{id}")
@RecordSystemLog
public Object uploadFaceimg(@RequestParam Long time, @RequestParam("faceimg") MultipartFile faceimg, @PathVariable UUID id) throws {
service.uplod(faceimg, id, time);
return true;
}
网关service层:
public void upload(MultipartFile imageMulti, UUID id, Long time) {
//构建请求地址
String api = getUploadPath();
api = api + "?id=" + id.toString();
//restTemple不能传输File和MulipartFile,转为FileSystemResource后传输
//构建FileSystemResource需要文件类型为File,因此先将MulipartFile转为File
//convertTemporaryPath转换临时地址
File image = ConvertUtil.multipartFileToFile(imageMulti, convertTemporaryPath);
try {
FileSystemResource resource = new FileSystemResource