簡體   English   中英

Java spring:將文件轉換為 MultipartFile 的最佳方法

[英]Java spring: best way to convert a File to a MultipartFile

我創建了一個文件(如下),但我想將它轉換為 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 中的 CommonsMultipartFile (org.apache.commons.fileupload.FileItem) 不能應用於 (org.apache.tomcat.util.http.fileupload.disk.DiskFileItem)

謝謝

InputStream stream =  new FileInputStream(file)
multipartFileToSend = new MockMultipartFile("file", file.getName(), MediaType.TEXT_HTML_VALUE, stream);

嘗試這個

我提出了這種允許將文件轉換為 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;
}

就我而言,效果很好,謝謝 Parthiban Manickam !!

    InputStream stream = new FileInputStream(zipFile);
    MockMultipartFile multipartFileToSend = new MockMultipartFile("file", zipFile.getName(),
            String.valueOf(MediaType.MULTIPART_FORM_DATA), stream);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM