Обязательный параметр MultipartFile 'file' отсутствует весной 4.3.1 - PullRequest
0 голосов
/ 23 июня 2018

Я использую Spring 4.3.1, и я собираюсь загрузить файл с помощью библиотеки ng-file-upload.это мой код javascript, и когда я подключаю код javascript к php-серверу, он работает хорошо.

        var promise = Upload.upload({
            url: url + "upload",
            method: 'POST',
            file: file,
            ignoreLoadingBar: true
        }).success(function(response) {
            flatForm.jsonForm = response.jsonForm;
            flatForm.xmlForm = response.xmlForm;
        }).error(function(response) {
            $rootScope.$broadcast('veil:hide', {});
        });

И я добавил в него commons-io-2.4.0.0.jar и commons-fileupload-1.3.1.jar в папке / web-inf / lib.И я добавил multipartResolver в файл applicationContext.xml.

 <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="1000000000" />
</bean>

И это мой класс контроллера.

    @ResponseBody
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void upload(@RequestParam("file") MultipartFile file) throws Exception {
    if (file == null || file.isEmpty()) {
        throw new Exception("No file was sent.");
    }
}

Но когда я загружаю файл, я получаю такую ​​ошибку.

Required MultipartFile parameter 'file' is not present

Как я могу это исправить?Пожалуйста, помогите мне.спасибо за просмотр.

1 Ответ

0 голосов
/ 23 июня 2018

Ошибка возникает из-за того, что вы указали имя файла параметров, которое должно быть file в вашем методе контроллера, но вы не установили его в своем коде клиента

Два способа решения:

а. удалить @RequestParam("file"), чтобы избежать указания имени параметра

б. добавьте свойство name к вашему элементу файла, как показано ниже:

   <input type='file' name='file'>
...