Обязательный параметр CommonMultipartFile 'testFile' отсутствует в весеннем mvc - PullRequest
0 голосов
/ 23 сентября 2018

когда я загружаю файл в springmvc, получаю сообщение об ошибке «Обязательный параметр CommonsMultipartFile 'textFile' отсутствует», я не знаю, почему я могу его встретить, это мой код.

<form id="form" enctype="multipart/form-data">
<input type="text" id="username" name="username" />
<input type="file" id="file" name="textFile" />
<input type="button" onclick="test()" value="上传" />
</form>

<script type="text/javascript">
function test(){
    var form = new FormData(document.getElementById("form"));
    $.ajax({
        url:"http://localhost:8080/giraffe/upload1",
        type:"post",
        data:form,
        cache: false,
        processData: false,
        contentType: false,
        success:function(data){
            alert("success!");
        }
    });
}

Это мой контроллер и конфигурация.

<bean id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"/>

    <property name="maxUploadSize" value="10240000"/>
</bean>

@RequestMapping(path = "/upload1", method = RequestMethod.POST)
public Object updloadImage(@RequestParam("textFile") CommonsMultipartFile file){
    String fileName = file.getOriginalFilename();

    return null;
}

1 Ответ

0 голосов
/ 24 сентября 2018

Может быть, вам следует изменить свой RequestParam на

@RequestParam MultipartFile textFile

Это типа "org.springframework.web.multipart.MultipartFile"

Также важно, чтобы вы открыли библиотеку общихваш сервер.Поэтому вы должны добавить свой commons-fileupload-xxxjar в папку WEB-INF / lib.

И ваш контроллер должен добавить путь

@RequestMapping(value="/giraffe")

, потому что ваш AJAX-запрос указывает на / giraffe/ upload1

Чтобы проверить, что и если что-либо представлено контроллеру, вы можете добавить

@RequestParam (required=false) ...

Если у вас есть jsp-файл для страницы и нет простого html, вы можете использоватьJSTL.Это может помочь вам избежать проблем с правильным URL в вашем AJAX-запросе.Как это

url: "<c:url value='/giraffe/upload1' />",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...