Upload de arquivo múltiplo Spring MVC com recurso de formulário de vários arquivos HTML5

Eu estou tentando carregar vários arquivos usando a Primavera 3.1.2 com @Controller e @RequestMapping.

Aqui está o que eu fiz e minha configuração.

Formulário 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>

Método do controlador:

@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  

}

meu 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>

O envio do formulário chega ao método addFileSystemImage. Os dados para o argumento locId estão aqui, mas o argumento "files" não está vinculado. É sistematicamente nulo, não importa qual combinação de argumentos / nomes de campos / tipos de argumentos eu tentei.

O argumento HttpServletRequest é um org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest e contém um atributo multiPartFile que, na verdade, contém os dados do arquivo. Olhando para o seu valor no debug me dá

{files[]=[org.springframework.web.multipart.commons.CommonsMultipartFile@16afd7f9, org.springframework.web.multipart.commons.CommonsMultipartFile@728c2811, org.springframework.web.multipart.commons.CommonsMultipartFile@4f9aaed7]}

o que significa que meus arquivos [] estão realmente aqui ... mas de alguma forma ele não passou a etapa de vinculação de dados corretamente ...

Agora ... Eu sei que você vai me dizer que eu posso recuperar os dados do pedido ... mas eu prefiro que isso funcione corretamente ... o caminho Sring ... :) e ter meu ArrayList de MultipartFile corretamente populosa.

Estou esquecendo de algo ? Alguém realmente fez esse trabalho corretamente? O que posso fazer para ter essa ArrayList (ou até mesmo uma matriz regular) preenchida?

Eu vim através desta soluçãoSpring MVC com upload de arquivo ajax e MultipartFile que faz praticamente a mesma coisa que eu, mas obviamente eu devo estar fazendo algo errado, já que esta solução não está funcionando para mim.

Nota: Consegui fazê-lo funcionar com uploads de arquivos únicos. Mas meu desafio hoje é conseguir vários arquivos de uma só vez.

Qualquer ajuda apreciada.

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion