/* * FileUploadAction.java * * Created on 8 de Dezembro de 2006, 16:13 * */packagecom.cosmosat.struts;importcom.cosmosat.facade.FileUploadFacade;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.sql.SQLException;importjavax.naming.NamingException;importorg.apache.struts2.Action;importorg.apache.struts2.components.File;publicclassFileUploadAction{privateFilefile;privateStringdescricao=" ";privateStringcontentType=" ";privateStringfilename=" ";publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}publicvoidsetUpload(Filefile){this.file=file;}publicvoidsetUploadContentType(StringcontentType){this.contentType=contentType;}publicvoidsetUploadFileName(Stringfilename){this.filename=filename;}publicStringenviar()throwsNamingException,SQLException,FileNotFoundException,IOException{System.out.println(descricao);System.out.println(filename);System.out.println(contentType);FileUploadFacadefacade=newFileUploadFacade();if(facade.salvar(descricao))return"success";elsereturn"fails";}}
ps: foi o primeiro link na consulta “struts file upload” no google
G
Guilherme_MelloPJ
Eu não vi nenhum interceptor de upload de arquivos no arquivo de configuração da action. Há um tempo atrás, postei no meu blog um exemplo de upload de arquivo com o WebWork. Como você está usando o Struts2, não terá muitos problemas em adaptar:
Guilherme, estava dando uma olhada aqui e o meu pacote do
não possui a classe
Eu tenho que implementar a mesma ou consigo fazer o download dela?
A propósito o meu struts.xml está com a configuração sugerida.
Abraços.
I
IgorCicompuitPJ
Olhei aqui e o mesmo se encontra dentro de
Gostaria de verificar a configuração do meu struts-default.xml
A onde ele fica?
G
Guilherme_MelloPJ
Igor, baixei o Struts2.0.1 e o interceptor FileUploadInterceptor está no pacote:
Baixe essa versão e faça um teste. A propósito, qual versão você está usando ?
G
Guilherme_MelloPJ
Já sei porque, seu interceptor está apontando para o antigo interceptor do XWork. Agora ele está no JAR do Struts2.
I
IgorCicompuitPJ
Kara, eu ja baixei o Struts 2.0.1 e verifiquei meu struts-default e está tudo igualzinho o do site.
Verifiquei meu código todo novamente, na verdade está como se fosse um Ctrl + c e Ctrl + v da documentação.
Pior que realmente não sei o que eu faço mais
Tem outra forma de fazer isso?
G
Guilherme_MelloPJ
Tem algumas coisas que eu poderia te falar, como por exemplo: eu não sei se o upload de arquivos funciona por padrão com o Apache File Upload ou se funciona com o componente de upload do WebWork.
Se você reparar, na pasta lib da distribuição do Struts2, há um JAR chamado struts2-pell-multipart-plugin-2.0.1. Esse componente que realiza o upload de arquivos no WebWork. Não tenho certeza se é esse que é utililizado no Struts2, não encontrei nada na documentação.
Ocorre alguma mensagem nos logs ?
I
IgorCicompuitPJ
Isso é que está ferrando tudo…
Não dá erro nenhum no Log.
Mas em uma das debugações verifiquei que os métodos
não estão sendo invocados.
Eles deveriam ser executados logo após o submit da página e nada disso ocorre. Já cai direto no método definido pela Action.
I
IgorCicompuitPJ
Alias, está dando a seguinte mensagem de erro sempre que executo pela primeira vez.
G
Guilherme_MelloPJ
Ótimo. Como eu pensei, ele está usando o Commons File Upload. Agora você tem que colocar o JAR desse componente na pasta WEB-INF/lib.