Eu também cheguei a conferir se o problema era o tamanho dos arquivos, mas não era viu. Os testes que tenho feito são com imagens pequenas, de 10kb no máximo cada.
Eu tenho subir duas, três…
Quando o arquivo é muito grande, o VRaptor barra, então ao menos neste ponto está tudo ok. O problema tá com mais de uma.
Tenho no meu classpath servlet-3, commons-io e commons-fileupload. Já tentei tirar só a Servlet e deixar só os commons, mas o problema persiste.
L
Lucas_Cavalcanti
tenta tirar os colchetes e deixar o List<…>
O
oddy.silva
Eu fiz dois testes:
Apenas alterei o método e retirei os colchetes de List:
public void create(List files)
mas ele não consegue fazer a conversão:
Alterei o campo “name” no input, retirando as chaves, e mantive a assinatura do método como a acima:
<inputtype="file"id="files"name="files"multiple/>
mas ele não conseguiu fazer o parse:
L
Lucas_Cavalcanti
não entendi o que vc quis dizer… vc deixou como name=“files” e recebeu um List files?
O
oddy.silva
Primeiro testei assim: “name=files[]” e no método “List files”. Não funcionou.
Depois eu deixei com “name=files” (antes estava name=“files[]”) e deixei o método como (List files). Esse segundo teste também não funcionou.
Tô pensando em fazer um Downgrade pro Vraptor 3.4, porque tava lendo e o pessoal conseguiu receber multiplos arquivos. Não sei se alguém já tentou fazer isso
no 3.5. De repente é alguma coisa que precisa ser corrigida. Eu realmente não queria ter que utilizar o uploadfy, não quero javascript envolvido nisso rsrs Vou tentar ver aqui.
Tava dando uma olhada, havia uma issue no Github que acabou virando uma feature nova pro vRaptor 3.4.
A solução encontrada na época foi arrumar o interceptor pras requisições multiple. De repente eu vou ter que escrever esse Interceptor na mão pra meu upload múltiplo funcionar.
To achando estranho pra caramba não estar funcionado aqui . . .
(ps: to editando as coisas aqui mesmo nesse comentario pra eu nao floodar o topico)
O
oddy.silva
Nada ainda. O DefaultConverters não acha o parâmetro quando ele vem em um array, lista ou varargs.
A única maneira de receber uma lista ou um array no vraptor é se especificar o index no name. Por exemplo:
O exemplo acima também é válido pra arquivos: files[0], files[1] etc…
No momento, se eu quiser passar vários arquivos de uma vez, o nome do indentificador com colchetes sem índices (“files[]”) não tá rolando. O negócio é fazer
do jeito antigo, deixar igual ao do orkut mesmo hahahaha
L
Lucas_Cavalcanti
o erro do Unable to find converter for br.com.caelum.vraptor.interceptor.multipart.UploadedFile
vc só é obrigado a colocar o índice se vc for agrupar vários atributos.
E sobre o fix que vc falou, ele tá no master, então está presente na versão 3.5.1
se o erro que estava dando era o do converter, é só acrescentá-lo.
O
oddy.silva
Lucas,
Adicionei o converter e funcionou maravilhosamente bem. Ontem, antes de ir dormir, eu verifiquei que o fix já estava presente. Por isso eu tava achando estranho. Mas pro upload de múltiplos arquivos, é só adicionar esse convert que você passou que vai funcionar bem pra caramba.
Então, se alguém quiser fazer o upload de arquivos utilizado a tag multiple, fica assim: