Почему этот контроллер почтовых методов Java не получает эту почтовую форму?

Это форма:

<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, поэтому я не знаю, что не так с контроллером.

Исправьте форматирование кода в своем вопросе.

Andrzej Ziółek 21.10.2018 10:54

Почему вы добавили в путь /**?

Andreas 21.10.2018 11:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
202
1

Ответы 1

Я думаю, вам следует заменить 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");
}

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

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

Другие вопросы по теме