multipartfile是spring定义的一个接口,file是无法转换为multipartfile的。但是可以自己实现一个multipartfile具体类,在这个类中将file封装。
- 此处截取一个multipartfile接口的实现类CommonsMultipartFile的部分代码及构造方法片段
所以我们可用通过创建CommonsMultipartFile对象来转MultipartFile - maven依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
- 方法
public MultipartFile FileToMultipartFile(File oneFile) throws IOException
{
FileItem fileItem = new DiskFileItem("mainFile", Files.probeContentType(oneFile.toPath()), false, oneFile.getName(), (int) oneFile.length(), oneFile.getParentFile());
InputStream input = null;
OutputStream os = null;
MultipartFile multipartFile = null;
try {
input = new FileInputStream(oneFile);
os = fileItem.getOutputStream();
IOUtils.copy(input, os);
multipartFile = new CommonsMultipartFile(fileItem);
input.close();
os.close();
return multipartFile;
} catch (IOException ex) {
throw new RuntimeException();
} finally {
if(input != null){
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(os != null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
亲测可用,希望对大家有帮助。如有疑问,欢迎留言。