在Feign中接口方法的参数是文件类型时要使用**@RequestPart注解,并要设置ContentType为multipart/form-data**。
feign接口:
@PostMapping(value = "/student/upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Object upload(@RequestPart(value = "file") MultipartFile file);
provider:
@PostMapping(value = "/upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody //官方要求
public Object upload(MultipartFile file){
System.out.println("file::"+file);
CommonResult result = new CommonResult();
try {
EasyExcel.read(file.getInputStream(), Student.class, new StudentExcelListener(studentService)).sheet().doRead();
} catch (IOException e) {
e.printStackTrace();
result.setMsg("Excel上传出错");
}
result.setData(file.getOriginalFilename());
return result;
}
consumer:
@PostMapping(value = "/upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody //官方要求
public Object upload(MultipartFile file){
System.out.println("consumer:::"+file);
String uri = url_prefix + "/student/upload";
return studentFeignService.upload(file);
}