segunda-feira, 6 de junho de 2011

Struts2 - Upload de arquivos, gravando no sistema de arquivos

Para fazer upload usando Struts2, em Java para o sistema de arquivos (do servidor) é relativamente simples. Segue exemplo básico abaixo com uma pequena explicação.

No NetBeans, crie um novo projeto (Java Web) , chameio- de “UploadFS”. Usaremos Tomcat como de costume, mas esse aplicativo não tem banco de dados, portanto, na tela dos frameworks, marque apenas o Struts2, e não o Hibernate, também não precisa criar a página de exemplo.

Bom, projeto criado, vamos modificar o index.jsp e incluir o formulário de upload. Código fonte abaixo.



Perceba que informamos no enctype o valor “multipart/form-data”. Se não, não faria o upload. O action do form, está para ação “doUpload”, então vamos implementar esse método. Criamos o arquivo “Upload.java”.


Bom, como vemos no código acima, apenas implementamos os gettes e os setters de um atributo do tipo File, para fazer upload, o Struts pede que se façam os outros dois atributos, conforme o nome do filefield que colocamos no jsp, no caso "arquivo"

Abaixo a implementação do upload em sí, carregando o arquivo para /dados/temp/upload.



Bom, próximo passo é configurar o struts, apontando a ação "doUpload" para a classe Upload no respectivo método.






Rodando a aplicação (diretório de upload está vazio)...


Escolhemos uma... e vua-la!



Download do código fonte do exemplo.

O Próximo, upando e cadastrando no BD.

2 comentários:

  1. Precisa informar o caminho completo no fileName antes de subir o arquivo?

    Abs

    ResponderExcluir
  2. ServletContext sContext = ServletActionContext.getServletContext();
    String diretorioFotos = sContext.getRealPath("WEB-INF/img");

    ResponderExcluir