问题描述
如何在 spring boot 中使用只接受 multipartfile 的 API? 必须从本地服务器(从某个特定路径)传递一个文件
@FeignClient(name = "abc-file-upload",url ="https://abc.xyz.app")
public interface ABCFeignClient {
String AUTH_TOKEN = "Authorization";
@PostMapping(value = "/api/v1/upload",consumes = "multipart/form-data")
UploadFileResponse uploadFile(@RequestBody multipartfile multipartfile,@RequestHeader(AUTH_TOKEN) String api_key);
}
现在我必须调用此客户端方法,并且必须从特定位置(例如 (/Users/pradeepkumar/Desktop/File_Download/file1.jpg)
如何获取本地文件的 multipartfile 对象?
解决方法
首先,MultiPartFile 是一个接口,我们可以创建它的多个实现的对象,如下所示,
File file = new File("/Users/pradeepkumar/Desktop/File_Download/file1.jpg");
拥有本地文件的 File 对象后,
final MultipartFile multipartFile = new MockMultipartFile(filename,filename,mimeType,FileUtils.readFileToByteArray(file));
此外,您可以创建自己的此接口实现。只需覆盖所有方法并从所有覆盖的方法返回预期数据。