Upload de um ficheiro com Tomcat

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Upload de um ficheiro com Tomcat

Mensagempor bvmzinho » Sábado Jan 27, 2007 19:33

Viva!

Tenho um formulario para escolher um ficheiro do disco e fazer o upload para o servidor.
A pagina que estou a usar é uma JSP e envia para o Tomcat.

Como posso fazer agora do lado do servidor para guardar esse ficheiro?!
Tenho de ter em principio uma função que faça isso dentro do meu bean Java, certo? Se alguem me conseguir ajudar, agradeço...
bvmzinho
Membro de Prata
Membro de Prata
 
Mensagens: 362
Registado: Sábado Jan 15, 2005 17:25

Mensagempor vamosAeles » Domingo Jan 28, 2007 18:21

Estás a usar a framework do struts? se sim, é bastante fácil. Basta definir o form bean no ficheiro de configuracao:

<form-bean name="importaBDForm" dynamic="true" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="ficheiro" type="org.apache.struts.upload.FormFile" />
</form-bean>

E depois do ficheiro java, na classe que executa essa acção qq coisa do estilo:

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, ActionMessages messages, ActionMessages errors) throws Throwable {

MultipartRequestHandler mrh = null;
mrh = form.getMultipartRequestHandler();
FormFile ff = (FormFile) mrh.getFileElements().get("ficheiro");
FileOutputStream out = new FileOutputStream("C:/"+ff.getFileName());
byte dados[] = new byte[5000000]; // 5 Megas
InputStream in = ff.getInputStream();
int numLido;
while(true){
numLido = in.read(dados);
if(numLido == -1){
break;
}
out.write(dados,0,numLido);
}

out.close();

return mapping.findForward("Siga");
}
}
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor bvmzinho » Domingo Jan 28, 2007 19:20

vamosAeles Escreveu:Estás a usar a framework do struts? se sim, é bastante fácil. Basta definir o form bean no ficheiro de configuracao:

<form-bean name="importaBDForm" dynamic="true" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="ficheiro" type="org.apache.struts.upload.FormFile" />
</form-bean>

E depois do ficheiro java, na classe que executa essa acção qq coisa do estilo:

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, ActionMessages messages, ActionMessages errors) throws Throwable {

MultipartRequestHandler mrh = null;
mrh = form.getMultipartRequestHandler();
FormFile ff = (FormFile) mrh.getFileElements().get("ficheiro");
FileOutputStream out = new FileOutputStream("C:/"+ff.getFileName());
byte dados[] = new byte[5000000]; // 5 Megas
InputStream in = ff.getInputStream();
int numLido;
while(true){
numLido = in.read(dados);
if(numLido == -1){
break;
}
out.write(dados,0,numLido);
}

out.close();

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


Pois, julgo que não, não conheço esse framework.

Eu tenho um form na pagina JSP do genero:

<form method="POST" enctype="multipart/form-data">
<p><input type="file" name="F1" size="20"></p>
<p><input type="submit" value="Anexar" name="B1"></p>
</form>


e tenho informação do bean assim:

<jsp:directive.page import="nome.myBean" />
<jsp:useBean id="idbean" scope="page" class="nome.myBean" />
<jsp:setProperty name="idbean" property="*" />


o submit é feito para este bean chamando uma função por exemplo:
idbean.setFicheiro();


e queria saber como implementar no bean um metodo que simplesmente guarde numa directoria o ficheiro.
Pra já precisava apenas de passar o nome e ele guardasse, nem precisava de me preocupar com limites de tamanho, etc.

Obrigado na mesma pela ajuda. Vou tentar perceber o código acima. :wink:
bvmzinho
Membro de Prata
Membro de Prata
 
Mensagens: 362
Registado: Sábado Jan 15, 2005 17:25


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 8 visitantes

cron