Foros del Web » Programación para mayores de 30 ;) » Java »

upload de archivo

Estas en el tema de upload de archivo en el foro de Java en Foros del Web. Holas: 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 ...
  #1 (permalink)  
Antiguo 20/04/2006, 15:47
Avatar de ko^ke  
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 22 años, 7 meses
Puntos: 1
upload de archivo

Holas:

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?
__________________
Aquí va la firma...
  #2 (permalink)  
Antiguo 21/04/2006, 08:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Comprueba que es lo que te devuelve "actual.getName()" por que si te devuelve el nombre completo del archivo, esta ahi el fallo. Ten en cuenta que no es un File si no un FileItem.

Esas cosas son de depuración del propio programa y es cuestion de probar cuales son los diferentes valores que te va dando.
  #3 (permalink)  
Antiguo 21/04/2006, 09:36
Avatar de ko^ke  
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 22 años, 7 meses
Puntos: 1
Finalmente asi quedó la solución

Saludetes!!

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");7
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("/opt/jakarta-tomcat-4.1.29/webapps/list/pdfs/" fileName);
//out.println("El nombre del fichero es " + fichero.getName());

// nos quedamos solo con el nombre y descartamos el path
fichero = new File("/opt/jakarta-tomcat-4.1.29/webapps/list/pdfs/" 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());
}
}
 
%> 
__________________
Aquí va la firma...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.