Проблема с Spring FileUpload

У меня есть следующий блок кода, который обрабатывает загрузку файла фотографии, которую я использую в своем веб-приложении Spring MVC. Я использую Spring MVC CommonsMultipartFileResolver для обработки загрузки файлов.

if(model.getPhoto() != null){
    if(!model.getPhoto().isEmpty()){
        MultipartFile file = model.getPhoto();
        String fileName = file.getOriginalFilename();
        String filePath = baseDirectory + fileName;
        FileOutputStream fos = new FileOutputStream(filePath);
         try 
         {
            fos.write(file.getBytes());
            agentProfile.setPhotoUri(fileName);
         } 
         catch (IllegalStateException e) 
         {
            System.out.println(e);

         }
         finally   
         {
             fos.close();
         }
    }
}

В моем файле app-servlet.xml у меня есть следующий код для настройки bean-компонента распознавателя MultipartFile.

 <bean id="multipartResolver"   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 </bean>

У меня возникают случайные проблемы при загрузке фотографий.

1) Если я загружу фотографию меньшего размера, около 3 КБ или около того, она будет успешно загружена.

2) Если я зайду, чтобы загрузить немного большую фотографию, он создаст файл в каталоге, но с размером 0 байт и выдаст следующее сообщение об ошибке.

 java.lang.IllegalStateException: File has been moved - cannot be read again
org.springframework.web.multipart.commons.CommonsMultipartFile.getBytes(CommonsMultipartFile.java:112)
com.mmz.admin.mvc.controller.AddAgentController.processFinish(AddAgentController.java:145)
org.springframework.web.servlet.mvc.AbstractWizardFormController.validatePagesAndFinish(AbstractWizardFormController.java:642)
org.springframework.web.servlet.mvc.AbstractWizardFormController.processFormSubmission(AbstractWizardFormController.java:492)
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:265)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Я попробовал несколько различных вариантов настройки многочастного преобразователя, таких как переключение его для обработкиCommonsMultipartFile объект в отличие от равниныMultipartFile объект, но ничего не изменилось.

Я также попытался вручную настроить максимальный размер загрузки в bean-компоненте CommonsMultipartFileResolver с помощью следующего свойства.

 <property name="maxUploadSize" value="1024000000"/>  

ничего не изменилось. Я не уверен, что CommonsMultipartResolver по умолчанию соответствует размеру файла, который может быть загружен, но это не мой вопрос.

Мне сказали, что проблема, с которой я сталкиваюсь, связана с проблемой в парсере / обработчике Multipart, который использует Spring. У меня был недавний пост об этой же проблеме, и, поскольку была найдена новая информация, я хотел опубликовать новую информацию. Старый пост можно найти наCommonsMultipartFileResolver Проблема

Я чувствую, что проверил почти все ресурсы в Интернете, чтобы найти дополнительную документацию, но не могу выяснить проблему.

Пожалуйста, помогите мне выяснить, что происходит с этим, и если есть лучшее,проще решение, возможно, изучить эти варианты, но я бы предпочел остаться с моим текущим методом, если я могу найти решение.

РЕДАКТИРОВАТЬ Примечание. Я экспериментировал с фотографиями разных размеров для загрузки, и я считаю, что ограничение, которое он позволяет загружать, составляет около 10 КБ. Все, что больше 10Кб, вызывает его поломку и выдает ошибку выше.

Ответы на вопрос(3)

Ваш ответ на вопрос