2017-02-15 1 views
0

Ich versuche diesen Code und das Bild existiert, aber wenn ich versuche, eine CommonsMultipartFile zu erstellen, ist die Größe Null.CommonsMultipartDateigröße ist 0

File file = new File("[image]"); 
DiskFileItem fileItem = new DiskFileItem("file", "image/png", false, file.getName(), (int) file.length() , file.getParentFile()); 
fileItem.getOutputStream(); 
MultipartFile multipartFile = new CommonsMultipartFile(fileItem); 

Antwort

0

Sie könnten versuchen, mit diesem

DiskFileItem fileItem = new DiskFileItem("file", "image/png", true, file.getName(), (int)file.length() , file.getParentFile()); 
InputStream input = new FileInputStream(file); 
OutputStream os = fileItem.getOutputStream(); 
int ret = input.read(); 
while (ret != -1) 
{ 
    os.write(ret); 
    ret = input.read(); 
} 
os.flush(); 
MultipartFile multipartFile = new CommonsMultipartFile(fileItem); 
Assert.assertTrue(multipartFile.getSize() > 0); 
+0

ich nicht MockMultipartFile verwenden können. Ich habe es versucht, aber wenn ich einen externen Dienst anrufe, um das Bild hochzuladen, gibt es mir einen Fehler, weil es ein FileItem braucht. –

+0

@ClaraMG Überprüfen Sie die neue Antwort, die ich geändert habe, um MockMultipartFile nicht zu verwenden – cralfaro

+0

Vielen Dank! es funktionierte! obwohl ich jetzt ein anderes Problem mit dem Analysieren habe ... 'org.springframework.http.converter.HttpMessageNotWritableException: konnte Inhalt nicht schreiben: Kein Serializer fand für Klasse java.io.FileDescriptor und keine Eigenschaften, die entdeckt wurden, um BeanSerializer zu schaffen' –