Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2014, 04:40
evoarte
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 3 meses
Puntos: 2
xmlhttpRequest con addEventListener y múltiples argumentos

buenos días,

Pretendo hacer una llamada ajax por cada archivo subido, y disponer de un div donde mostrar el proceso de subida archivo a archivo, me encuentro con el problema de poder pasar varios argumentos para manejar el evento, no tengo claro como pasar varios argumentos a la función progreso:

Código Javascript:
Ver original
  1. function subirArchivo() {
  2.    
  3.             var archivos = document.getElementById("files").files;
  4.    
  5.             for(var i = 0; i< archivos.length; i++)
  6.             {
  7.                 var file = archivos[i];
  8.                 var formdata = new FormData();
  9.                 formdata.append("upload", file);
  10.        
  11.                 var ajax = new XMLHttpRequest();
  12.                     ajax.upload.addEventListener("progress", progreso, false);
  13.                     ajax.addEventListener("load", operacion_completada, false);
  14.                     ajax.addEventListener("error", mensaje_error, false);
  15.                     ajax.addEventListener("abort", abortar_subida, false);
  16.                     ajax.open("POST", "upload.php");
  17.                     ajax.send(formdata);
  18.             }
  19.         }
  20.  
  21.  
  22.         function progreso(event){
  23.    
  24.             document.getElementById("total").innerHTML = "Subidos "+ event.loaded+" bytes de "+event.total;
  25.             var percent = (event.loaded / event.total) * 100;
  26.             document.getElementById("progressBar").value = Math.round(percent);
  27.             document.getElementById("estado").innerHTML = Math.round(percent)+"% subiendo... por favor, espere";
  28.         }
  29.  
  30.         function operacion_completada(event) {
  31.  
  32.             document.getElementById("estado").innerHTML = event.target.responseText;
  33.             document.getElementById("progressBar").value = 0;
  34.         }
  35.  
  36.         function mensaje_error(event) {
  37.  
  38.             document.getElementById("estado").innerHTML = "Error al subir el archivo";
  39.         }
  40.  
  41.         function abortar_subida(event) {
  42.        
  43.             document.getElementById("estado").innerHTML = "Upload Abort";
  44.         }