Feign远程调用上传图片功能

前提:使用easypoi上传excel时,由于已有对应的上传图片接口,所以需要将excel表格中解析出的图片去远程调取其他服务上对应的上传图片接口。

由于对应的上传图片接口需要的参数为 ​MultipartFile​,所以需要先将本地自己的图片路径为该参数类型,如下所示:

//  图片上传
File file = new File("D:/home/user");
FileInputStream fileInputStream = new FileInputStream(file);
// upload
MultipartFile file1 = new MockMultipartFile("file", file.getName(),
ContentType.MULTIPART_FORM_DATA.toString(), fileInputStream);
Map<String, Object> upload = null;
ReturnResult upload1 = rpcBasicService.upload(file1);

需要注意点:

Feign远程调用上传图片功能_spring boot

这里的 ​“file”​, 我们需要和远程接口rpcBasicService.upload(file1)中的upload方法参数类型注解中的value值内容相同,否则会报错 ​Required request part ‘file’ is not present​,下面设置为 ​MULTIPART_FORM_DATA​是因为我们上传文件时是需要设置Content-Type为 ​"multipart/form-data"​ 类型

Feign远程调用上传图片功能_上传图片_02

在@PostMapping()中我们需要添加consumes = MediaType.MULTIPART_FORM_DATA_VALUE​,这也是为了将Content-Type为 ​"multipart/form-data"​ 的类型,同时在参数中我们需要添加的注解为 ​@RequestPart()​,而不是 ​@RequestParam()​,在该注解中有一个value值,该值的名称必须要和上图中 ​new MockMultipartFile(“file”,xxxx,xxxx,xxx)​ 中的“file”名称相同,否则报错信息就是刚刚提过的 ​Required request part ‘file’ is not present​。