[Resolvido] Limitar tamanho do Upload com VRaptor 3
10 respostas
Guevara
Oi pessoal!
Como faço para limitar tamanho máximo do upload em 200K?
Tava pensando em colocar lá no validator mesmo, algo do tipo:
Criando a classe CustomMultipartConfig para sobrescrever:
O componente que você sobrescreveu está correto, é assim mesmo. Porém a validação não é feita no JSP nem mesmo via validator você consegue. Isso porque você só conhece o tamanho do arquivo após o fim do upload.
O componente do Vraptor que faz upload já faz a validação para você, e adiciona a mensagem de tamanho excedido no objeto Validator.
[complementando] Ou seja, basta você apenas sobrecrever o MultipartConfig e deixar o Vraptor fazer a validação.
Guevara
E ai Garcia! \o/
Então, tirei aquela validação na jsp, criei a classe CustomMultipartConfig e ao fazer upload dá este erro:
Mas sem a classe CustomMultipartConfig o validator funciona corretamente, precisa fazer algo mais pra fazer o VRaptor usar a nova classe ou ele se vira pra usá-la?
Abraço!!
Lucas_Cavalcanti
o getSizeLimit tem que retornar o limite em bytes… ou seja, se vc quiser 200KB vc tem que retornar 200*1024…
se estourar o limite, o vraptor vai adicionar um erro de validação, e todos os parâmetros da sua lógica vão vir nulos. Então a primeira linha do seu método de upload tem que ser algo do tipo:
validator.onErrorRedirectTo(...)...
depois vc pode fazer as outras validações normalmente
Guevara
Valeu Lucas!
Como personalizo aquela mensagem que ele mostra?
???file.limit.exceeded???
Guevara
Ops, fui por analogia e descobri, é só adicionar ao messages.properties:
file.limit.exceeded = O arquivo possui mais de 200KB, selecione uma imagem com tamanho inferior
Valeu!!!
Abraço!
G
garcia-jj
Lucas, posso melhorar essa parte da documentação sobre download e upload? Abri uma issue lá no github há algum tempo.
Lucas_Cavalcanti
Claro, garcia-jj, não precisa nem perguntar
só me avisa via pull request depois
Rapaz… que zona estava meu fork, mas acho que agora eu consegui resolver todos os conflitos. Tive de fazer alguns commits no master para resolver esses problemas no merge.
Valeu pelo help
A
admwagner
Lucas Cavalcanti:
o getSizeLimit tem que retornar o limite em bytes… ou seja, se vc quiser 200KB vc tem que retornar 200*1024…
se estourar o limite, o vraptor vai adicionar um erro de validação, e todos os parâmetros da sua lógica vão vir nulos. Então a primeira linha do seu método de upload tem que ser algo do tipo:
validator.onErrorRedirectTo(...)...
depois vc pode fazer as outras validações normalmente
É possivel configurar para que os demais parametros da logica passados não venham nulos?
Preciso do codigo do movimento para redirecionar novamente para o formulario de edicão.
O há outro meio.?