2016-08-22 5 views
1

Ich habe die Datei zu MultipartFile konvertieren, aber die MultipartFile leer ist, helfen Sie bitte bestätigen Sie es, ich danke Ihnen sehr, -Code wie folgt:Warum ist mein MultipartFile leer

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); 

Antwort

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

Ich habe IOUtils.copy in meinem Code vergessen. Du bist ein Lebensretter! – jDub9

0

Können Sie wechseln MockMultipartFile und versuchen Sie den folgenden Code?

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

Danke, aber die MockMultipartFile Klasse im Frühjahr-Testpaket und kann nicht verwendet werden. –

+0

Die Commons-Datei hochladen http://commons.apache.org/proper/commons-fileupload/using.html –