Não consigo fazer upload no Struts2!

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]

Qual erro ocorre?

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??