我在下面创建了一个文件,但是我想将其转换为MultipartFile,我该怎么办?
我已经尝试了这段代码,没有成功:
File file = new File("text.txt");
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input));
而导致错误:
File file = new File("text.txt");
DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, file.getName(), (int) file.length() , file.getParentFile());
fileItem.getOutputStream();
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
错误
CommonsMultipartFile(org.apache.commons.fileupload.FileItem)在 CommonsMultipartFile不能应用于 (org.apache.tomcat.util.http.fileupload.disk.DiskFileItem)
谢谢
答案 0 :(得分:1)
InputStream stream = new FileInputStream(file)
multipartFileToSend = new MockMultipartFile("file", file.getName(), MediaType.TEXT_HTML_VALUE, stream);
尝试
答案 1 :(得分:0)
我提出了一种允许将文件转换为MultipartFile的方法:
public static MultipartFile buildMultipartFile(@NonNull final File file,
@NonNull final String multipartFileParameterName) throws IOException {
MultipartFile multipartFile = null;
try (final FileInputStream input = new FileInputStream(file)) {
multipartFile = new MockMultipartFile(
multipartFileParameterName,
file.getName(),
Files.probeContentType(file.toPath()),
IOUtils.toByteArray(input));
}
return multipartFile;
}
答案 2 :(得分:0)
就我而言,效果很好,谢谢Parthiban Manickam!
InputStream stream = new FileInputStream(zipFile);
MockMultipartFile multipartFileToSend = new MockMultipartFile("file", zipFile.getName(),
String.valueOf(MediaType.MULTIPART_FORM_DATA), stream);