Java Spring:将文件转换为MultipartFile的最佳方法

时间:2019-02-15 15:53:28

标签: java spring file file-upload upload

我在下面创建了一个文件,但是我想将其转换为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)

谢谢

3 个答案:

答案 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);
相关问题