Я пытаюсь загрузить несколько файлов с помощью Spring 3.1.2 с помощью @Controller и @RequestMapping.Загрузка нескольких файлов MVC с несколькими файлами в формате HTML5
Вот что я сделал и свою конфигурацию.
Html5 форма:
<form action="addFileSystemImage.foo" method="post" enctype="multipart/form-data">
<input class='fileInput' type="file" name="files[]" multiple="multiple" />
<input type="text" value="13asdf12eadsf" name="locId"/>
<input type="submit" />
</form>
метод управления:
@RequestMapping(value="/publisher/addFileSystemImage.foo", method=RequestMethod.POST)
public @ResponseBody List<UploadedFile> addFileSystemImage(@RequestParam("files[]") ArrayList<MultipartFile> files, String locId, HttpServletRequest request) {
//do lotsa voodoo rocket science here to process the files
}
мой конф:
<mvc:annotation-driven />
<context:component-scan base-package="foo.package"></context:component-scan>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
Отправка формы действительно получить к методу addFileSystemImage. Данные для locId аргумента здесь, но аргумент «files» не связан. Это систематически null, независимо от того, какую комбинацию аргументов/полей/типов аргументов я попробовал.
Аргумент HttpServletRequest представляет собой org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest и содержит атрибут multiPartFile, который фактически хранит данные файла. Глядя на его значение в отладке дает мне
{files[]=[[email protected]6afd7f9, [email protected]28c2811, [email protected]f9aaed7]}
что означает, мои файлы [] действительно здесь ... но почему-то не проходит шаг правильно привязки данных ...
сейчас ... Я знайте, что вы скажете мне, что я могу получить данные из запроса ... но я предпочел бы, чтобы это работало правильно ... Sring way ... :) и правильно заполнил мой ArrayList из MultipartFile.
Я что-то упустил? Кто-нибудь действительно сделал эту работу должным образом? Что я могу сделать, чтобы заполнить этот ArrayList (или даже обычный массив)?
Я пришел через это решение Spring MVC with ajax file upload and MultipartFile, что делает практически то же самое, что и я, но, очевидно, я должен делать что-то неправильно, так как это решение не работает для меня.
Примечание: Мне удалось заставить его работать с отдельными файлами. Но сегодня моя задача - получить сразу несколько файлов.
Любая помощь приветствуется.
Заранее спасибо.
Вы пытались объявить аргумент «файлы» как список или многостраничные файлы? Я не думаю, что список поддержки Spring является ArrayList, и, возможно, сбой происходит, когда Spring пытается связать аргументы метода. –
Мне удалось получить что-то подобное в прошлом. Я помню, что вы также должны включать в свой pom. Может, попробуй? – gerrytan
Глупо мне ... Это работало со списком и массивом ... Я, должно быть, потерял следы того, что я сделал на протяжении всего тестирования ... Спасибо Алекс. Вы можете ответить на вопрос, и я дам вам точку, если вы захотите. Приветствия! – azpublic