Resultados 1 al 4 de 4

Subir ficheros a un servidor con java y tomcat.

  1. #1 Subir ficheros a un servidor con java y tomcat. 
    Avanzado
    Fecha de ingreso
    Jun 2006
    Ubicación
    Valhala
    Mensajes
    1.167
    Descargas
    4
    Uploads
    0
    Saludos queridos HH!!
    Hoy vamos a aprender a crear una pagina para poder subir ficheros a nuestro servidor tomcat. Todo escrito en jsp y java por supuesto.
    Nos hacen falta dos librerias, commons-io-1.1.jar y commons-fileupload-1.1.1.jar .
    Poniendolas en %catalina%\common\lib es suficiente, al menos en teoria.
    Bien una vez completado ya podemos empezar a picar codigo. Buscando y buscando en google, encontraba varias formas de hacerlo, pero al ir copiando en el eclipse, me decia que esos metodos estaban desfasados (deprecated). Asi que a base de mirar en la documentacion y un poco en internet, consegui sacar el siguiente fichero de pruebas. Aqui os dejo el codigo:
    Código:
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"
        import="java.util.*"
        import="org.apache.commons.fileupload.*"
        import="org.apache.commons.fileupload.servlet.*"
        import="org.apache.commons.fileupload.disk.*"
        import="java.io.*"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <form action=pruebas.jsp method=post enctype=multipart/form-data>
    <table>
    <tr>
    <td>Fichero</td>
    <td><input type=file name=fichero></td>
    </tr>
    <tr><td colspan=2><input type=submit value=enviar name=enviar>
    </td>
    </tr>
    </table>
    </form>
    <%
    	//Ruta donde se guardara el fichero
    	File destino=new File("C:\\TEMP\\");
    	// Convertimos el HTTPRequest en un ContextRequest,
    	// este paso es necesario en la ultima version,
    	// ya que los metodos de las versiones anteriores
    	// se han quedado desfasados.
    	ServletRequestContext src=new ServletRequestContext(request);
    	
    	//Si el formulario es enviado con Multipart
    	if(ServletFileUpload.isMultipartContent(src)){
    	//Necesario para evitar errores de NullPointerException
    	DiskFileItemFactory factory = new DiskFileItemFactory((1024*1024),destino);
    	//Creamos un FileUpload
    	ServletFileUpload upload=new  ServletFileUpload(factory);
    	//Procesamos el request para que nos devuelva una lista
    	//con los parametros y ficheros.
    	List lista = upload.parseRequest(src);
    	File file= null;
    	//Recorremos la lista.
    	Iterator it = lista.iterator();
    	while(it.hasNext()){
    		//Rescatamos el fileItem
    		FileItem item=(FileItem)it.next();
    		//Comprobamos si es un campo de formulario
    		if(item.isFormField())
    			//Hacemos lo que queramos con el.
    			out.println(item.getFieldName()+"<br>");
    		else
    		{
    			//Si no, es un fichero y lo subimos al servidor.
    			//Primero creamos un objeto file a partir del nombre del fichero.
    			file=new File(item.getName());
    			//Lo escribimos en el disco
    			// usando la ruta donde se guardara el fichero
    			// y cogiendo el nombre del file
    			// Nota: Se podria hacer usando el objeto item en vez del file directamente
    			// Pero esto puede causar incompatibilidades segun que navegador, ya que 
    			// algunos solo pasan el nombre del fichero subido, pero otros
    			// como Iexplorer, pasan la ruta absoluta, y esto crea un pequeño problema al escribir
    			// el fichero en el servidor.
    			item.write(new File(destino,file.getName()));
    			out.println("Fichero subido");
    			
    		}
    	}
    	}
    	
    
    
    %>
    </body>
    </html>
    Espero que a alguien le sirva de ayuda o de referencia. Cualquier duda o aportacion se agradecera mucho ^^
    Un saludo hasta la proxima!
    http://www.project-longinus.es
    Citar  
     

  2. #2  
    Iniciado
    Fecha de ingreso
    Sep 2010
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    hola smaug_,

    amigo me e inscrito nada mas para agradecerte, me sirvió mucho el ejemplo, ojala mas personas compartieran su conocimiento,

    nuevamente gracias
    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Sep 2010
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    hola smaug_

    necesito ayuda, si aun andas por hay.

    como te dije antes el codigo me funciona a la perfeccion, pero resulta k junto con el archivo enviado tambien envio otros datos en input como text o textarea, y no logro recuperarlos con el request.getParameter(); ayuda por favor, como logro recuperarlos?
    Citar  
     

  4. #4  
    Iniciado
    Fecha de ingreso
    Nov 2011
    Mensajes
    1
    Descargas
    0
    Uploads
    0
    Hola

    Necesito saber cómo especificar en File destino=new File("C:\\TEMP\\"); la ruta pero en un servidor remoto (i.e. un VPS).

    De antemano, gracias por su ayuda.

    Hasta pronto
    Citar  
     

Temas similares

  1. Respuestas: 0
    Último mensaje: 11-07-2015, 14:45
  2. Ayuda Apache Tomcat/7.0.56
    Por Mr FX en el foro INTRUSION
    Respuestas: 0
    Último mensaje: 01-02-2015, 00:21
  3. Respuestas: 18
    Último mensaje: 19-08-2010, 17:04
  4. Como subir archivos al tomcat con struts
    Por luis9rs en el foro GENERAL
    Respuestas: 2
    Último mensaje: 17-07-2010, 11:32
  5. Web no me deja subir ficheros
    Por Neferet en el foro GENERAL
    Respuestas: 2
    Último mensaje: 11-05-2004, 22:18

Marcadores

Marcadores