Coloquei as paginas de upload e o actions quem vem no struts2 show case na minha aplicação teste.O metodo upload esta sendo executado mas o arquivo nao esta sendo carregado.Abaixo esta a configuração do struts.xml:
struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default">
<action name="doUpload" class="struts2.action.FileUploadAction" method="upload">
<result name="input">upload.jsp</result>
<result>upload-success.jsp</result>
</action>
</package>
</struts>
O q ta faltando pra conseguir realizar o upload???[/code]
Não ocorre erro, o campo arquivo continua nulo.
O erro acontece porque você não está usando o interceptor de FileUpload do Struts2. O interceptor é necessário para que a action possua a funcionalidade de Upload.
No meu blog tem um exemplo de FileUpload com o WebWork, dê uma olhada… o código é identico ao so Struts2:
http://blognotfoundexception.blogspot.com/2006/10/upload-com-webwork.html
http://struts.apache.org/2.x/docs/file-upload-interceptor.html
Ainda não tá dando certo,to colocando todo o codigo pra quem puder ajudar:
strust.xml
<struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default" >
<action name="doUpload" class="struts2.action.FileUploadAction" method="upload">
<result name="input">upload.jsp</result>
<result>upload-success.jsp</result>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="basicStack"/>
</action>
</package>
</struts>
FileUploadAction.java
[code]
public class FileUploadAction extends ActionSupport {
private static final long serialVersionUID = 5156288255337069381L;
private String contentType;
private File upload;
private String fileName;
private String caption;
public String getUploadFileName() {
return fileName;
}
public void setUploadFileName(String fileName) {
this.fileName = fileName;
}
public String getUploadContentType() {
return contentType;
}
public void setUploadContentType(String contentType) {
this.contentType = contentType;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
public String input() throws Exception {
return SUCCESS;
}
public String upload() throws Exception {
return SUCCESS;
}
}[/code]
upload.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Showcase</title>
</head>
<body>
<h1>Fileupload sample</h1>
<s:actionerror />
<s:fielderror />
<s:form action="doUpload" method="POST" enctype="multipart/form-data">
<s:file name="upload" label="File"/>
<s:textfield name="caption" label="Caption"/>
<s:submit />
</s:form>
</body>
</html>
Esse é codigo que copiei do struts showcase para a minha aplicação.No struga funciona perfeitamente mas na minha aplicação o arquivo não ta sendo carregado .Mto Obrigado pela ajuda!!!
Você leu o meu post ? você precisa copiar o arquivo e guardar em um diretório. Leia o meu blog ou a documentação do Struts2.
criei o arquivo struts.properties da seguinte maneira:
struts.properties
struts.multipart.parser=jakarta
struts.multipart.saveDir=c:\uploads
e as biblitecas que estão no lib são as seguinte:
commons-fileupload-1.1.1.jar
commons-io-1.1.jar
commons-logging-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.6.jar
xwork-2.0.1.jar
O estranho é que o metodo setUpload(File upload) tem um system.out e a mensagem nunca é exibida,ou seja, ainda não sei como fazer o upload.Valeu galera
O tutorial está certo, o que falta é atualizar as bibliotecas.
Embora eu tenha baixado o Struts 2.0.3 fresquinho do site, o commons-fileupload e o commons-io tiveram q ser atualizados para funcionar.
Estou com fileupload 1.2 e io 1.3.
Abraços e boa sorte.
Aproveintando o post do nosso amigo. eu gostaria de ajuda tbm pois não consegui fazer funcionar. comigo ocorre o mesmo problema e estou comecando a achar q pode ser a versao das minhas lib’s
commons-io-1.3.1.jar
commons-fileupload-1.2.jar
será que isso faz sentido??