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

Subir dos a mas archivos a servidor local

Estas en el tema de Subir dos a mas archivos a servidor local en el foro de Java en Foros del Web. Saludos a los miembros del foro recurro ustedes para que me puedan ayudar con este problema... Estoy tratando mas de dos archivos(fotos) a mi servidor ...
  #1 (permalink)  
Antiguo 04/07/2011, 16:48
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 13 años, 6 meses
Puntos: 0
Subir dos a mas archivos a servidor local

Saludos a los miembros del foro recurro ustedes para que me puedan ayudar con este problema... Estoy tratando mas de dos archivos(fotos) a mi servidor local, con mucho esfuerzo consegui subir uno, ahora quisiera que me orienten en que cambiar el codigo, para poder conseguir solucionar mi problema...
Código HTML:
<form method="post" action="file_upload.jsp" name="upform" enctype="multipart/form-data">
<fieldset id="fiel">
    <%
if (MultipartFormDataRequest.isMultipartFormData(request)) 
{
    MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request);
    String todo = null;
    if (mrequest != null) 
    {
        todo = mrequest.getParameter("todo");
        out.println(todo);
    }
    if ((todo != null) && (todo.equalsIgnoreCase("upload")))
    {
        Hashtable files = mrequest.getFiles();
        if ((files != null) && (!files.isEmpty()))
        {
            java.text.SimpleDateFormat formato = new java.text.SimpleDateFormat("yyMMddHHmmss");
            String archivo = ((UploadFile) mrequest.getFiles().get("uploadfile")).getFileName();
            int posicionPunto = archivo.indexOf(".");
            String nombreImagen = archivo.substring(0, posicionPunto);
            String extension = archivo.substring(posicionPunto);
            nombreImagen = nombreImagen + formato.format(new java.util.Date());
            nombreImagen = nombreImagen + extension;
            ((UploadFile) mrequest.getFiles().get("uploadfile")).setFileName(nombreImagen);
            UploadFile file = (UploadFile) files.get("uploadfile");
            if (file != null)
            {
                out.println("<font face='verdana' size='1' color='00008B'>El archivo: " + file.getFileName() + " se subio correctamente</font>");
                out.println("<input type='hidden' name='Nombre' value='"+file.getFileName()+"' id='Nombre'>");
            }
            upBean.store(mrequest, "uploadfile");
        } else 
        {
            out.println("Archivos no subidos");
        }
    } else 
    {
        out.println("<BR> todo=" + todo);
    }
}
%> 
Ahora le agrege este javascript para generar input file:
Código HTML:
num=0;
function crear(obj) {
  num++;
  fi = document.getElementById('fiel'); // 1
  contenedor = document.createElement('div'); // 2
  contenedor.id = 'div'+num; // 3
 // fi.appendChild(contenedor); // 4
 fi.insertBefore(contenedor,obj); // 4

  ele = document.createElement('input'); // 5
  ele.type = 'file'; // 6
  ele.name = 'uploadfile'+num; // 6
  
  contenedor.appendChild(ele); // 7
  
  ele = document.createElement('input'); // 5
  ele.type = 'button'; // 6
  ele.value = 'Borrar'; // 8
  ele.name = 'uploadfile'+num; // 8
  // ele.value='value'+num;
  ele.onclick = function () {borrar(this.name)} // 9
  contenedor.appendChild(ele); // 7
}
function borrar(obj) {
  fi = document.getElementById('fiel'); // 1 
  fi.removeChild(document.getElementById(obj)); // 10
}
Quisiera que me oriente con esto amigos foreros, o talvez si saben alguna otra forma de hacerlo se los agradeceria en monton.. de antemano gracias....
  #2 (permalink)  
Antiguo 04/07/2011, 21:50
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: Subir dos a mas archivos a servidor local

Yo lo se hacer en PHP.

En java nunca lo he intentado pero supongo que debe ser muy similar.


EN PHP
1.- Lo primero es asegurarse que cada inputFile tenga un nombre distinto
2.- Haciendo uso de arreglos pueden meter cada archivo del formulario en una variable tipo arreglo

ejm
Código PHP:
Ver original
  1. $archivo[0] = $_FILES["archivo0"]['tmp_name'];
  2. $archivo[1] = $_FILES["archivo1"]['tmp_name'];
  3. $archivo[2] = $_FILES["archivo2"]['tmp_name'];
  4.  
  5. //Utilizando un for o foreach recorro el arreglo
  6. {
  7.  
  8. copy($archivo[i],ruta_destino);
  9.  
  10. }

Espero de hayas dado una idea y lo puedas implementar en Java, yo todavia no entra mundo de Java web, apenas y he hecho un login haha.

Saludos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 05/07/2011, 08:22
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Subir dos a mas archivos a servidor local

Gracias por la respuesta New... La parte de meterla en un arreglo la entiendo un poco, quizas deba hacer:
String file[]=request.getParameterValues("Nombre_Input");//input[0],input[1]...

Algo asi quizas sea, disculpa me puedes explicar un poco mas del for y los input que tu implimentaste ya estaban fijos o los creas de una manera dinamica de antemano te doy las gracias... Y a los demas que desen aportar.... Gracias
  #4 (permalink)  
Antiguo 05/07/2011, 10:22
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: Subir dos a mas archivos a servidor local

Hola amigo. Es asi como dices.

Los input los creo con un for donde el indice del limite del for será el numero de archivos (dimension )que haya subido el usuario. por ejemplo.

Si en tu JSP el usuario crea 3 campos file, guardo este 3 (dimension )en un campo de texto tipo hidden, para recibir este dato por post en archivo JAVA o JSP (El que estes usando).

Código HTML:
Ver original
  1. <input type="hidden" name="dimension" value="<%=  ///variable que contenga esta dimension, en este caso 3  >%">

Código java:
Ver original
  1. int dimension = request.getParameterValues("dimension");

Posteriormente con un ciclo for comienzo a recorrer los arreglos de archivos

supongamos que el usuario había escogido 3 campos tipo file y subido 3 archivos.

Código HTML:
Ver original
  1. <input type="file" name="archivo1">
  2. <input type="file" name="archivo2">
  3. <input type="file" name="archivo3">

Código java:
Ver original
  1. int dimension = request.getParameterValues("dimension");
  2.  
  3.  
  4. String[] nombre_archivo = new String[dimension];
  5.  
  6. String ruta_destino = "home/localhost/directorio";
  7.  
  8. String[] ruta_file = new String[dimension];
  9.  
  10. //Para obtener el nombre de los archivos y las rutas temporales haces en el for (antes del copy) las //invocaciones request.
  11.  
  12. for(int i=0; i<dimension; i++){
  13.  
  14.      //La siguiente linea es para copiar un archivo de la ruta temporal a la ruta del servidor PERO
  15.      // ES EN PHP, en java no se como sea.
  16.      
  17.      copy(ruta_file[i],ruta_destino+"/"+nombre_archivo[i]);
  18. }
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #5 (permalink)  
Antiguo 05/07/2011, 10:32
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Subir dos a mas archivos a servidor local

Hola... a mi me piden que suba como 5 archivos, y lo pude conseguir pero yo lo quiero hacer mas dinamico asi como tu lo explicas en tu mensaje pero no lo he logrado.. necesaramente le tengo que dar cinco, yo tambien hice lo mismo que explicas pero nada me debe faltar algo muy puequeño pero no se q es.... gracias por la respuesta....

Etiquetas: local, servidor
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 14:01.