[VRaptor] Interceptar antes de receber parametros

4 respostas
Sad7

Boa tarde pessoal,

Gostaria de saber se criando uma classe @Interceptor, ele vai interceptar antes de buscar os parametros ou depois.
Por exemplo, se eu tenho um form que faz um File Upload, eu consigo Interceptar o request antes de fazer o upload?

A ideia é que eu preciso barrar o file upload em certos momentos, porem nao tem sentido eu barrar o upload somente depois que ja subiu 10Mb (por exemplo).

Obrigado.

4 Respostas

Lucas_Cavalcanti

se vc quer interceptar antes vc pode fazer o seguinte:

@Intercepts(before=NomeDoInterceptor.class)

no caso seria o ParametersInstantiatorInterceptor

mas vc não vai conseguir barrar pq não tem como vc saber o tamanho do upload antes… só depois de ler mesmo.

Se eu não me engano o commons-upload para o upload depois que ele passa do limite configurado (2mb no caso)

Rafael_Guerreiro

E em relação à esses plugins de jQuery para fazer file upload.

Tem uns que fazem um pre-load. Como que esses funcionam?

Sad7

Lucas Cavalcanti:
se vc quer interceptar antes vc pode fazer o seguinte:

@Intercepts(before=NomeDoInterceptor.class)

no caso seria o ParametersInstantiatorInterceptor

mas vc não vai conseguir barrar pq não tem como vc saber o tamanho do upload antes… só depois de ler mesmo.

Se eu não me engano o commons-upload para o upload depois que ele passa do limite configurado (2mb no caso)

Lucas, eu vou barrar o request por uma condição interna, e nao pelo tamanho do arquivo, entao acredito que o before=ParametersInstantiatorInterceptor sirva para mim, pois nao preciso saber o tamanho.
Sobre o interceptor ParametersInstantiatorInterceptor, se eu interceptar antes dele, o upload ainda nao vai ter sido feito?

Somente para nao deixa em branco: o commons-upload, o Default dele é 2mb msm e ele barra se exceder, eu extendi a classe CommonsUploadMultipartInterceptor e aumentei esse tamanho.

Lucas_Cavalcanti

então vc tem que colocar o before=SeuMultipartInterceptor.class

Criado 20 de setembro de 2012
Ultima resposta 20 de set. de 2012
Respostas 4
Participantes 3