Upload - problemas

5 respostas
P

Olá pessoal,

Estou com um problema ao fazer um upload com uso do struts: Meu form está setado como: enctype="multipart/form-data" No jsp eu tenho:
[size=9]<td class="campo">
<html:file	property="arqProcesso" styleClass="texto" size="30"/>
</td>[/size]
Em minha action.java eu tenho o seguinte código:
DiskFileItemFactory factUpload = new DiskFileItemFactory();
factUpload.setRepository(new File(request.getContextPath() + "/WEB-INF/upload/"));
factUpload.setSizeThreshold(102400);
ServletFileUpload srvFileUpload = new ServletFileUpload(factUpload);
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
   List items = srvFileUpload.parseRequest(request);
   Iterator itItems = items.iterator();
   while (itItems.hasNext()) {
      FileItem item = (FileItem)itItems.next();
      if (!item.isFormField()) {
         String nomeArquivo = item.getName();
         String path = request.getContextPath() + "/WEB-INF/upload/" +    nomeArquivo;
         try {
            File file = new File( path );
            item.write( file );
         } catch( IOException exc ) {
            log.info( "Erro gravando arquivo: " + exc.getMessage() );
         }
      }
   }
}

Porém meu "items" tem tamanho zero.

No meu ActionForm o multipartRequestHandler.getElementsFile(), possui um elemento que é o arquivo que eu selecionei.

Alguém teria alguma idéia do que está acontecendo?

Att.

5 Respostas

KWill

O “method” do form é “post”?

Se não for, acho que a API commons-fileupload não funciona…

Inté.

P

kWil,

Sim é method=“post”.

Alguma outra idéia?

Grato,

P

O meu teste com isMultipart está retornando como TRUE.
Aparentemente deveria estar funcionando, mas o srvFileUpload.parseRequest(request) não possui conteúdo.

Que outro problema poderia ser ?

Grato!

P

Ahh outra informação que talvez seja importante:

No struts-config.xml eu declarei:


P

Ahh outra informação que talvez seja importante:

No struts-config.xml eu declarei:

<form-bean name="importacaoestadocivilForm" dynamic="true" type="org.apache.struts.validator.DynaValidatorActionForm"> <form-property name="arqProcesso" type="org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile" /> </form-bean>

Criado 7 de novembro de 2006
Ultima resposta 8 de nov. de 2006
Respostas 5
Participantes 2