Estou tendo problemas para fazer o upload de varios arquivos num mesmo formulario utilizando struts. Fiz uma UploadAction e uma UploadActionForm e nessa ultima acrescentei as funções getters e setters para a variável privada que chamei de content do tipo FormFile aonde guardo o arquivo trazido pelo upload. Com um arquivo só a coisa funciona bem, o problema é quando tento fazer o upload de mais de um arquivo usando o upload.jsp que segue abaixo; na action eu uso uma lista aonde eu gostaria de guardar cada bean content(isto é,o arquivo que fiz o upload) que foi lido ao ser clicado o botão upload correspondente (faço o upload de três arquivos), mas ao rodar o código verifico que a lista tem apenas o último arquivo que fiz upload e os dois primeiros sumiram. Na verdade, eu seto uma variável “entrada” na session que conteria essa lista atualizada, a cada upload feito.
Como faço para obter a lista com o upload dos três arquivos?
Alguém poderia me ajudar?
<html:form action="/form/upload.do" method="POST" enctype="multipart/form-data">
<html:hidden property="acao" value="configurar" />
<html:file property="content"/><html:submit value="Upload"/><br>
<html:file property="content"/><html:submit value="Upload"/><br>
<html:file property="content"/><html:submit value="Upload"/><br><br>
<br><br>
<html:submit value="Enviar"/>
</html:form>
O UploadAction está assim:
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
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;
import org.apache.struts.upload.FormFile;
import UploadActionForm;
public class UploadAction extends org.apache.struts.action.Action {
private List lista;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception{
UploadActionForm uploadActionForm = (UploadActionForm)form;
FormFile content = uploadActionForm.getContent();
String contentType = content.getContentType();
String fileName = content.getFileName();
int fileSize = content.getFileSize();
byte[] fileData = content.getFileData();
InputStream entrada = content.getInputStream();
HttpSession session = request.getSession(true);
lista.add(entrada);
session.setAttribute("entrada",lista);
return mapping.findForward("configurar");
}
}
E o UploadActioForm está assim:
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class UploadActionForm extends org.apache.struts.action.ActionForm {
private FormFile content;
public FormFile getContent(){
return content;
}
public void setContent(FormFile content){
this.content = content;
}
public UploadActionForm() {
super();
}
}