Почему этот контроллер метода java не получает эту форму? - PullRequest
0 голосов
/ 21 октября 2018

Это форма:

<form method="post"  enctype="multipart/form-data" id="uploadFileForm" action="/uploadTest">
     <div>
        <input type="file" id="image_uploads" name="filename" accept=".jpg, .jpeg, .png, .pdf" multiple>
    </div>
    <div id="uploadpreview">
        <p>No files currently selected for upload</p>
    </div>
    <div>
        <button id="uploadBtn" type="submit">Submit</button>
    </div>
</form>

Это контроллер:

@Controller
@RequestMapping(value = "/**/uploadTest")
public class UserFileUploadController {

    @RequestMapping(method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public String TestRun(@ModelAttribute("filename") final File uploadFile)
    {
    //code in which i use the uploaded file
        return ("redirect:/solutions");
    }
}

Я получаю код состояния «Метод 405 не разрешен» = на экране отображается «Ошибка сервера»,но страница обновляется до / uploadTest, поэтому я не знаю, что не так с контроллером.

1 Ответ

0 голосов
/ 21 октября 2018

Я думаю, вам следует заменить File на MultipartFile, а затем вызвать метод transferTo, если вы хотите сохранить файл в файловой системе.

@RequestMapping(method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String TestRun(@ModelAttribute("filename") final MultipartFile uploadFile) throws IOException {
    File file = ...
    uploadFile.transferTo(file);
    return ("redirect:/solutions");
}

Вы также должны проверить, если выопределили этот компонент в dispatcher-servler.xml и установите maxUploadSize в правильное значение.

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="1000000" />
</bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...