Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/05/2009, 12:11
jesuscoro
 
Fecha de Ingreso: noviembre-2008
Mensajes: 115
Antigüedad: 15 años, 6 meses
Puntos: 4
Respuesta: problemas al subir archivo y procesarlo

A ver si no me lio demasiado.

1) Cuando tu arrancas la aplicacion o tu servidor desde netbeans, este coge la carpeta c:\Documents .... y, digamos que lo que hace (por que tal vez no sea exactamente asi, pero el resultado es el mismo), despliega la aplicacion en un directorio temporal, que cuando pares el servidor desaparecera. Por eso, cuando tu subes un archivo, aunque estara en c:\Documents.... no estara en ese directorio temporal, por que netbeans ya lo desplego y no vuelve a mirar ahi. Sin embargo, si tu paras y arrancas el servidor, o vuelves a deplegar la aplicacion, ese archivo, que ahora esta en c:\Documents.... si podras procesarlo, por que netbeans vuelve a coger esa carpeta y desplegarla.

2) Si tu le dices que suba el archivo a c:\Documents...., para procesarlo en ese mismo "despliegue", deberias buscar en esa misma carpeta.

Prueba a decirle que te suba el archivo a http://localhost:8084/Proyecto/web/archivos, pero no se yo si esto funcionara cuando arranques el servidor desde netbeans.

Mi consejo, como ya te dije, es que uses dos path, uno cuando lo hagas en local (o tal vez sea mejor decir desde netbeans) y otro en remoto (o cuando vayas a arrancar tu el servidor a mano),
Si arrancas desde netbeans creo que podria ser algo asi:
Código:
    String path="C:/Documents and Settings/MaLo/Mis documentos/NetBeansProjects/Proyecto/web/archivo";
    //String path="http://localhost:8084/Proyecto/web/archivo";    
           String fileName= fi.getName();        
           fi.write(new File(path, fileName));

y si lo haces a mano, pues al reves

Código:
    String path="C:/Documents and Settings/MaLo/Mis documentos/NetBeansProjects/Proyecto/web/archivo";
    //String path="http://localhost:8084/Proyecto/web/archivo";    
           String fileName= fi.getName();        
           fi.write(new File(path, fileName));

o incluso, puedes capturar en un try si existe el archivo, y si no, que lo intente con la otra ruta:

Código:
    String pathNetBeans = "C:/Documents and Settings/MaLo/Mis documentos/NetBeansProjects/Proyecto/web/archivo";
    String pathAMano = "http://localhost:8084/Proyecto/web/archivo";    
           String fileName= fi.getName();        
    try{
           fi.write(new File(pathNetBeans, fileName));
    }catch(FileNotFoundException ex){
           fi.write(new File(pathAMano, fileName));
    }
Seguro que hay formas mejores de hacerlo, y que alguien te puede explicar exactamente como trabaja netbeans, pero esa fue la forma en que lo solucione yo.

De todas formas, no te recomiendo que lo pongas todo con rutas absolutas, por que en el momento que quieras desplegar eso en un servidor que no este en tu ordenador..... te imaginas, no?

No se si no te liaria mas de lo que ya estabas.