10

春にファイルをマルチパートファイルに変換したい。私はこれを作りました:

File in;
MultipartFile file =  null;
in = new File("C:...file on disk");
int size = (int) in.length();
DiskFileItem fileItem = new DiskFileItem("file", "application/vnd.ms-excel", false, nomefile, size ,in.getAbsoluteFile());
file = new CommonsMultipartFile(fileItem);

しかし、この例外を受け取ります:

threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
    at org.apache.commons.fileupload.disk.DiskFileItem.getSize(DiskFileItem.java:316)

fileItem は null だと思いますが、デバッグ モードではデータが取り込まれています。別の解決策はありますか? この投稿Converting File to MultiPartFileがありますが、機能せず、解決策もありません。

4

2 に答える 2

17
    File file = new File("src/test/resources/input.txt");
    FileInputStream input = new FileInputStream(file);
    MultipartFile multipartFile = new MockMultipartFile("file",
            file.getName(), "text/plain", IOUtils.toByteArray(input));

これは、File オブジェクトからマルチパート ファイルを取得する別の方法です。

于 2015-06-02T05:30:11.100 に答える
5
    File file = new File("src/test/resources/validation.txt");
    DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, file.getName(), (int) file.length() , file.getParentFile());
    fileItem.getOutputStream();
    MultipartFile multipartFile = new CommonsMultipartFile(fileItem);

が必要です

    fileItem.getOutputStream();

それ以外の場合は NPE をスローするためです。

于 2013-12-13T17:05:54.890 に答える