Wiosenne przesyłanie wielu plików MVC z funkcją tworzenia wielu plików HTML5
Usiłuję przesłać wiele plików za pomocą wiosny 3.1.2 z @Controller i @RequestMapping.
Oto co zrobiłem i moja konfiguracja.
Formularz 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>
Metoda kontrolera:
@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
}
mój conf:
<mvc:annotation-driven />
<context:component-scan base-package="foo.package"></context:component-scan>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
Przesłanie formularza powoduje przejście do metody addFileSystemImage. Dane dla argumentu locId znajdują się tutaj, ale argument „files” nie jest powiązany. Jest systematycznie zerowy bez względu na kombinację argumentów / nazw pól / typów argumentów, które próbowałem.
Argument HttpServletRequest jest org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest i zawiera atrybut multiPartFile, który faktycznie przechowuje dane pliku. Patrzenie na jego wartość w debugowaniu daje mi
{files[]=[org.springframework.web.multipart.commons.CommonsMultipartFile@16afd7f9, org.springframework.web.multipart.commons.CommonsMultipartFile@728c2811, org.springframework.web.multipart.commons.CommonsMultipartFile@4f9aaed7]}
co oznacza, że moje pliki [] rzeczywiście są tutaj ... ale jakoś nie przekazały poprawnie kroku powiązania danych ...
Teraz ... Wiem, że powiesz mi, że mogę odzyskać dane z prośby ... ale wolałbym, żeby to działało poprawnie ... sposób Sringa ... :) i mieć poprawnie moją ArrayList z MultipartFile zaludniony.
Czy czegoś mi brakuje? Czy ktoś rzeczywiście to sprawił? Co mogę zrobić, aby wypełnić tę tablicę ArrayList (lub nawet zwykłą tablicę)?
Przyszedłem przez to rozwiązanieSpring MVC z przesyłaniem plików ajax i MultipartFile co robi prawie to samo co ja, ale oczywiście muszę robić coś złego, ponieważ to rozwiązanie nie działa dla mnie.
Uwaga: udało mi się go uruchomić przy ładowaniu pojedynczego pliku. Ale moim dzisiejszym wyzwaniem jest uzyskanie wielu plików jednocześnie.
Każda pomoc doceniana.
Z góry dziękuję.