2016-08-22 283 views
1

我通過將文件轉換爲MultipartFile,但MultipartFile是空的,請幫忙確認,非常感謝你, 代碼如下:爲什麼我MultipartFile是空

File file = new File("/Users/aikaliu/document/micrown/source/img/20160802144001791.jpg"); 
    int fileSize =Integer.parseInt(file.length() + ""); 

    DiskFileItem fileItem = null; 
    try { 
     fileItem = new DiskFileItem("file", "text/plain", false, file.getName(),fileSize, file.getParentFile()); 
     fileItem.getOutputStream(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    MultipartFile multipartFile = new CommonsMultipartFile(fileItem); 

回答

2
File file = new File("/Users/aikaliu/document/micrown/source/img/20160802144001791.jpg"); 

    final DiskFileItem diskFileItem = new DiskFileItem("fileData", "text/plain", true, file.getName(), 100000000, file.getParentFile()); 

    InputStream input = null; 
    OutputStream os = null; 
    try { 
     input = new FileInputStream(file); 
     os = diskFileItem.getOutputStream(); 
     IOUtils.copy(input, os); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    MultipartFile multipartFile = new CommonsMultipartFile(diskFileItem); 
+0

我在代碼中忘了IOUtils.copy。你是一個拯救生命的人! – jDub9

0

你能切換到MockMultipartFile並嘗試下面的代碼?

File file = new File("/Users/aikaliu/document/micrown/source/img/20160802144001791.jpg"); 
FileInputStream input = new FileInputStream(file); 
MultipartFile multipartFile = new MockMultipartFile("file", 
file.getName(), "text/plain", IOUtils.toByteArray(input)); 
+0

謝謝,但MockMultipartFile類在彈簧測試包,並無法使用。 –

+0

使用commons-file upload http://commons.apache.org/proper/commons-fileupload/using.html –