如何在 Spring Boot 中使用 MultipartFile 加载本地文件

问题描述

如何在 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));

此外,您可以创建自己的此接口实现。只需覆盖所有方法并从所有覆盖的方法返回预期数据。