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!