Inicio /
Subir archivos (Upload) con el Framework Struts

Se realiza con un Struct normal, pero con ciertas características que deberá tener el formulario (Página jsp), el ActionForm y el Action.

Veamos un ejemplo básico (en cursiva lo importate):

El archivo.jsp (formulario)

<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html>
<head>
<title>Nueva Instalacion Deportiva</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META name="GENERATOR" content="IBM WebSphere Studio">
</head>
<body>
<p class="Titulo" align="center">Subir/Cambiar </p>
<CENTER>
<TABLE  class="CampoFormulario" width="450" height="304" border="0" cellpadding="4" cellspacing="4">
<html:form  enctype="multipart/form-data" action="/UploadFotoPath">

   <tr valign="top"><td height="4"> <FONT color="#FF0000"><html:errors/></FONT></td></tr>
   <tr valign="top"><td align="center" height="4">

  <table width="60%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr class="CampoFormulario">
      <td><div align="center">Imagen&nbsp;&nbsp;</div></td>
      <td><div align="center">
          <html:file property="theFile" />
        </div></td>
    </tr>

    <tr class="CampoFormulario" align="center">
      <td colspan="2"> <html:submit value="Subir"/>  
      </td>
    </tr>
  </table>
   </td></tr>
</html:form>
</TABLE>
</CENTER>
<p>&nbsp; </p>
</body>
</html:html>

El UploadForm.java (ActionForm)

package com.ti.rid.web.instalacionDeportiva.Struts;

import org.apache.struts.upload.FormFile;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionError;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class UploadFotoForm extends ActionForm {

/**

* El archivo que el usuario quiere subir

*/

protected FormFile theFile;

/**

* El identificador de la instalación deportiva

*/

protected String ID_INSTALACION;

/**

* Recupera la representacion del fichero que el usuario sube

*/

public FormFile getTheFile() {

return theFile;

}

/**

* Introduce la representacion del fichero que el usuario sube

*/

public void setTheFile(FormFile theFile) {

this .theFile = theFile;

}

/**

* Recupera el identificador de la instalacion

*/

public String getId_instalacion() {

return ID_INSTALACION;

}

/**

* Introduce el identificador de la instalación

*/

public void setId_instalacion(String aString) {

this .ID_INSTALACION = aString;

}

/*

* Comprueba que el archivo cumple los parámetros que pedimos de tamaño y extensión

*/

public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) {

ActionErrors errors = new ActionErrors();

//Controlamos el tamaño del archivo

if (!((theFile.getFileSize() != 0) && (theFile.getFileSize() < utils.constantes.ConstantesRID.MAX_SIZE)))

{

errors.add( "error.tamanio" , new ActionError( "error.tamanio" ));

}

//Recuperamos el tipo de archivo

if (!theFile.getContentType().equalsIgnoreCase(utils.constantes.ConstantesRID.FILE_TYPE))

{

errors.add( "error.email" , new ActionError( "error.email" ));

}

return errors;

} //validate

} //class UploadFotoForm

El UploadAction.java (Action)

package com.ti.rid.web.instalacionDeportiva.Struts;

import java.io.InputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.io.FileOutputStream;

import java.io.ByteArrayOutputStream;

import java.io.FileNotFoundException;

import java.io.File;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.upload.FormFile;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ForwardingActionForward;

//import com.ti.rid.types.*;

import com.ti.rid.proc.*;

public class UploadFotoAction extends Action {

public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request,

HttpServletResponse response) {

if (form instanceof UploadFotoForm) {

UploadFotoForm theForm = (UploadFotoForm) form;

String fileNewName = theForm.getId_instalacion()+ ".jpg" ; //El nombre con el que queremos guardar el archivo

FormFile file = theForm.getTheFile(); //Recuperamos la representación del archivo

//ubicación y nombre del archivo a guardar

String path = utils.constantes.ConstantesRID.FILE_PATH+fileNewName;

//Controlamos las condiciones para subirlo

try {

// se comprueba que la ruta exista

File f = new File(path);

if (makeSureDirectoryExists(parent(f))) {

// Se graba en la ruta la foto;

FileOutputStream out = new FileOutputStream(f);

out.write(file.getFileData());

out.flush();

out.close();

//indicamos que la intalación tiene ya foto asociada

PInstalacionesDeportivas myPIDeportivas = new PInstalacionesDeportivas();

myPIDeportivas.setFoto( new Integer(theForm.getId_instalacion()), true );

} //if

} //try

catch (Exception ex) {

System.out.println ( "Lanzada excepcion en UploadFotoAction:" +ex);

return null ;

}

//Destruimos el archivo temporal

file.destroy();

System.out.print( "Subido el archivo deportiva" );

//Retornamos y continuamos en

return mapping.findForward( "alta_ok" );

} //if

//Nunca sucederá en este ejemplo

return null ;

} //perform

/**

* Devuelve la ruta padre del subdirectorio actual

* @param File --> El archivo del cual se quiere sacar su directorio o directorio padre

* @return File --> Crea un archivo con la ruta del directorio padre

*/

private File parent(File f) {

String dirname = f.getParent();

if (dirname == null ) {

return new File(File.separator);

}

return new File(dirname);

}

/**

* Crear un subdirectorio si este no existe

* @param dir --> El path del archivo (dirección + nombre)

* @return True -> Existe o se ha creado False --> No existe y no se ha podido crear

*/

private boolean makeSureDirectoryExists(File dir) {

if (!dir.exists()) {

if (makeSureDirectoryExists(parent(dir)))

dir.mkdir();

else

return false ;

}

return true ;

}

}

/**

* Devuelve la ruta padre del subdirectorio actual

* @param File --> El archivo del cual se quiere sacar su directorio o directorio padre

* @return File --> Crea un archivo con la ruta del directorio padre

*/

private File parent(File f) {

String dirname = f.getParent();

if (dirname == null ) {

return new File(File.separator);

}

return new File(dirname);

}

/**

* Crear un subdirectorio si este no existe

* @param dir --> El path del archivo (dirección + nombre)

* @return True -> Existe o se ha creado False --> No existe y no se ha podido crear */

private boolean makeSureDirectoryExists(File dir) {

if (!dir.exists()) {

if (makeSureDirectoryExists(parent(dir)))

dir.mkdir();

else

return false ;

}

return true ;

}

}


admin @ 14:47 | comentarios (0) | Links Permanentes



<< November 2024 >>
Sun Mon Tue Wed Thu Fri Sat
  1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
 

archivos

November - 2013
October - 2013
July - 2013
June - 2013
May - 2013
April - 2013
March - 2013
February - 2013
November - 2010
October - 2010
September - 2010
August - 2010
June - 2010
November - 2009
October - 2009
September - 2009
March - 2009
February - 2009
January - 2009
September - 2008
May - 2008
April - 2008
November - 2007
October - 2007
May - 2007
April - 2007
March - 2007
February - 2007
January - 2007
December - 2006
September - 2006
August - 2006
June - 2006
May - 2006
April - 2006
February - 2006
January - 2006
December - 2005
November - 2005

powered by SimpleBlog 2.0

rss feed




Ir a Blog de Recetas de Cocina