FileUpload + SizeLimit

6 respostas
Fmgasparino
Bom dia pessoal,

Estou utilizando o UploadedFile em minha aplicação, e recebi uma exception, porque o arquivo de 30 mb que fiz upload é muito grande e passa o limite conforme a exception:

[list]

]org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (31811402) exceeds the configured maximum (2097152)

at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:914)

at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)

at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349)

at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)

at br.com.caelum.vraptor.interceptor.multipart.MultipartInterceptor.intercept(MultipartInterceptor.java:84)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)

at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)

at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)

at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)

at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)

at java.lang.Thread.run(Unknown Source)

[/list]

Como o upload será local, não terei problema com o tempo e gostaria que fosse possivel colocar arquivos grandes…
Onde posso configurar outro limite de tamanho, ou em que local tenho que ir para encontrar a documentação disso.

Obrigado!

6 Respostas

A

se você configurar o size dele você não consegue?

o size dele é em bytes, então tem que configurar ele de acordo com o tamanho limite que você quer.

dê uma olhada nesse link do apache e vê se também te ajuda com a sua busca.

Fmgasparino

andre.froes:
se você configurar o size dele você não consegue?

o size dele é em bytes, então tem que configurar ele de acordo com o tamanho limite que você quer.

dê uma olhada nesse link do apache e vê se também te ajuda com a sua busca.

Dei uma olhada andre, mas o problema é que quem usa o FIleUpload, é o UploadedFIle do vRaptor…

public void adicionaDemanda(UploadedFile arquivo) throws IOException {  
		 InputStream file = arquivo.getFile(); 
	      if(file != null)
	      new DemandaProcessamento().adicionaDemanda(file);
			result.redirectTo(DemandaController.class).consultaDemanda();
	}

Acabo perdendo controle…
Nesse caso, devo criar uma classe que herda a UploadedFile e alterar o que é mais especifico para mim??

Valeu!

mario.fts
@Component  
 @ApplicationScoped  
 public class CustomMultipartConfig extends DefaultMultipartConfig {  
   
     public long getSizeLimit() {  
         return 10000000;  
     }  
 }

pode retorna o tamanho máximo aqui.

Fmgasparino
mario.fts:
@Component  
 @ApplicationScoped  
 public class CustomMultipartConfig extends DefaultMultipartConfig {  
   
     public long getSizeLimit() {  
         return 10000000;  
     }  
 }

pode retorna o tamanho máximo aqui.

Obrigado Mario!! Funcionou perfeitamente!
Essa informação fica na documentação do vRaptor?

G

Fmgasparino, sim, está na documentação (indiretamente). Qualquer componente pode ser sobrescrito apenas extendendo suas classes ou implementando as interface, caso você queria um comportamento diferente do padrão.

Há um subfórum especifico para o Vraptor: http://guj.com.br/forums/show/23.java

Fmgasparino

garcia-jj:
Fmgasparino, sim, está na documentação (indiretamente). Qualquer componente pode ser sobrescrito apenas extendendo suas classes ou implementando as interface, caso você queria um comportamento diferente do padrão.

Há um subfórum especifico para o Vraptor: http://guj.com.br/forums/show/23.java

Ok, obrigado!

Criado 12 de julho de 2010
Ultima resposta 13 de jul. de 2010
Respostas 6
Participantes 4