Implemente las clases commons-fileupload y ya pude subir archivos a mi maquina linux, el detalle es que el nombre del archivo lo toma con la ruta completa, es decir si le doy el comando ls para mostrar los archivos me muetra algo así:
c:\mis documentos\mi_archivo_subido.txt
y debería de mostrar solo:
mi_archivo_subido.txt
aqui pongo los dos archivos que utilizo:
Browse.html
<form method='POST' enctype='multipart/form-data' action='altaCert2.jsp'>
<div align="center">Seleccione Archivo
<input type="file" name="upfile">
<br>
<br>
<input type="submit" value="Subir">
</div>
</form>
SubeArchivo.jsp
Código PHP:
DiskFileUpload fu = new DiskFileUpload();
List fileItems = fu.parseRequest(request);
// maximo numero de bytes
fu.setSizeMax(1024*512); // 512 K
// tamaño por encima del cual los ficheros son escritos directamente en disco
fu.setSizeThreshold(4096);
// directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
//fu.setRepositoryPath("C:\\tomcat\\apache-tomcat-5.5.12\\webapps\\ROOT\\seguimiento\\archivos");
fu.setRepositoryPath("\\opt\\jakarta-tomcat-4.1.29\\webapps\\list\\pdfs");
if(fileItems == null){
out.println("La lista es nula");
}else{
//out.println("El número de ficheros subidos es: " + fileItems.size());
Iterator i = fileItems.iterator();
FileItem actual = null;
while (i.hasNext())
{
actual = (FileItem)i.next();
String fileName = actual.getName();
out.println("<br> Haz subido el Archivo" + fileName);
// construimos un objeto file para recuperar el trayecto completo
File fichero = new File("C:\\tomcat\\apache-tomcat-5.5.12\\webapps\\ROOT\\seguimiento\\archivos\\" + fileName);
//out.println("El nombre del fichero es " + fichero.getName());
// nos quedamos solo con el nombre y descartamos el path
fichero = new File("C:\\tomcat\\apache-tomcat-5.5.12\\webapps\\ROOT\\seguimiento\\archivos\\" + fichero.getName());
//out.println("El fichero se ha subido: " + fichero.getName());
// escribimos el fichero colgando del nuevo path
out.println("CONTENIDO: " + actual.getContentType());
//out.println("FICHERO: " + fichero.getAbsolutePath());
//actual.write(fichero);
out.println("El archivo se ha escrito en disco: " + fichero.getName());
}
}
Alguna idea?