Problema em fazer um UPLOAD de Arquivo com Struts

5 respostas
C

estou tem problema em fazer uma pagina de upload com o struts

Minha classe Bean:

package br.com.geropder.aspectos.beans.modelos;

import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.struts.upload.FormFile;

public class Arquivo {
    private FormFile arquivo;
    private String tipoArquivo;
    private String nomeArquivo;
    private int tamanhoArquivo;
    private byte[] dadosArquivo;

    public void setArquivo(FormFile arquivo){
        this.arquivo = arquivo;
        this.tipoArquivo = this.arquivo.getContentType();
        this.nomeArquivo = this.arquivo.getFileName();
        this.tamanhoArquivo = this.arquivo.getFileSize();
    }

    public FormFile getArquivo(){
        return this.arquivo;
    }

    public String getTipoArquivo(){
        return this.tipoArquivo;
    }

    public String getNomeArquivo(){
        return this.nomeArquivo;
    }

    public int getTamanhoArquivo(){
        return this.tamanhoArquivo;
    }

    public byte[] getDadosArquivos(){
        return this.dadosArquivo;
    }
}

minha classe FormAction

package br.com.geropder.aspectos.struts.form;

import br.com.geropder.aspectos.beans.modelos.Arquivo;
import org.apache.struts.action.ActionForm;

public class UploadForm extends ActionForm {
    private Arquivo arquivo = new Arquivo();
    
    public Arquivo getArquivo(){
        return this.arquivo;
    }
}

minha classe Action simples apenas criando o form e imprimindo os dados do arquivo:

package br.com.geropder.aspectos.struts.action;

import br.com.geropder.aspectos.beans.modelos.Arquivo;
import br.com.geropder.aspectos.struts.form.UploadForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class UploadAction extends Action{

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws Exception{
        UploadForm formulario = (UploadForm) form;
        
        Arquivo arquivo = formulario.getArquivo();
  
        System.out.println("Tipo de arquivo: " + arquivo.getTipoArquivo());
        System.out.println("Nome do Arquivo: " + arquivo.getNomeArquivo());
        System.out.println("Tamanho do Arquivo: " + arquivo.getTamanhoArquivo());

        HttpSession session = request.getSession();
        session.setAttribute("arquivo", arquivo);

        return mapping.findForward("ok");
    }
}

meu struts-config.xml

<form-beans>
        <form-bean name="UploadForm" type="br.com.geropder.aspectos.struts.form.UploadForm"/>
</form-beans>
<action-mappings>
        <action path="fileUpload" name="UploadForm" scope="request"
        type="br.com.geropder.aspectos.struts.action.UploadAction">
            <forward name="ok" path="paginas/vistoria/vistoria.jsp"/>
        </action>
</action-mappings>

Meu arquivo JSP

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<html:html>
    <head>
        <title>Upload do Arquivo</title>
    </head>
    <body bgcolor="white">
        <html:form action="/fileUpload" focus="arquivo.arquivo">
            <table>
                <tr>
                    <td align="center" colspan="2">
                    <font size="4">Buscar Aquivos</font>
                </tr>

                <tr>
                    <td align="left" colspan="2">
                    <font color="red">
                        <html:errors/>
                    </font>
                </tr>

                <tr>
                    <td align="right">
                        Arquivo
                    </td>

                    <td align="left">
                        <html:file property="arquivo.arquivo"/>
                    </td>
                </tr>

                <tr>
                    <td align="center" colspan="2">
                        <html:submit>Upload</html:submit>
                    </td>
                </tr>
            </table>
        </html:form>
    </body>
</html:html>

se alguem puder me ajudar por favor de já agradeço

5 Respostas

C

subindo o topico pois preciso mesmo de alguma ajuda

alves.Felipe

mas qual o problema?? da algum erro?

C

retorna uma exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot retrieve mapping for action: “/fileUpload”

grato pela ajuda

alves.Felipe

nao esta achando nem o mapeamento do struts-config…
da uma verificada com os nomes ai…

C

Era problema no struts-config.xml mesmo felipe obrigado pela ajuda

Criado 20 de janeiro de 2010
Ultima resposta 21 de jan. de 2010
Respostas 5
Participantes 2