2017-02-15 1 views
0

Я пытаюсь использовать этот код и изображение, но когда я пытаюсь создать CommonsMultipartFile, размер равен нулю.CommonsMultipart Размер файла 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); 

ответ

0

Вы могли бы попробовать с этим

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

Я не могу использовать MockMultipartFile. Я попробовал, но когда я вызываю внешнюю службу для загрузки изображения, она дает мне ошибку, потому что ей нужен FileItem. –

+0

@ ClaraMG проверить новый ответ, который я изменил, чтобы не использовать MockMultipartFile – cralfaro

+0

Большое спасибо! это сработало! хотя теперь у меня есть еще одна проблема с разбором ... 'org.springframework.http.converter.HttpMessageNotWritableException: не удалось написать контент: сериализатор не найден для класса java.io.FileDescriptor и никаких свойств, обнаруженных для создания BeanSerializer' –