Hola Isabel,
Casi ...
Si subo varios archivos a la vez esta solución funciona,
pero si vuelvo a subir, sin recargar la página, ya no funciona.
así está el código:
Código Javascript
:
Ver originalvar nuar = 0;
function subirArchivo() {
var archivos = document.getElementById("files").files;
for(i=0; i<archivos.length; i++)
{
(function(i){
var file = archivos[i];
var formdata = new FormData();
formdata.append("upload", file);
nuel = "estado" + i;
nuav = "avance" + i;
nure = "textor" + i;
nuno = "nofile" + i;
nuda = "capaba" + i;
nuba = "nbarra" + i;
noar = document.getElementById("files").files[i].name;
cael = document.createElement("div");
cael.setAttribute("id", nuel);
document.getElementById("estado").appendChild(cael);
caar = document.createElement("div");
caar.setAttribute("id", nuno);
document.getElementById(nuel).appendChild(caar);
document.getElementById(nuno).innerHTML = i + " " + noar;
caav = document.createElement("div");
caav.setAttribute("id", nuav);
document.getElementById(nuel).appendChild(caav);
cada = document.createElement("div");
cada.setAttribute("id", nuda);
cada.setAttribute('class','progressbar');
document.getElementById(nuel).appendChild(cada);
caba = document.createElement("div");
caba.setAttribute("id", nuba);
caba.setAttribute('class','progress');
document.getElementById(nuda).appendChild(caba);
care = document.createElement("div");
care.setAttribute("id", nure);
document.getElementById(nuel).appendChild(care);
var ajax = new XMLHttpRequest();
//ajax.upload.addEventListener("progress", progreso, false);
ajax.upload.addEventListener("progress", function(event){progreso(event, i)}, false);
ajax.addEventListener("load", function(event){operacion_completada(event,i)}, false);
ajax.addEventListener("error", mensaje_error, false);
ajax.addEventListener("abort", abortar_subida, false);
ajax.open("POST", "upload.php");
ajax.send(formdata);
})(i)
}
}
function progreso(event,nuar){
nutota = nuar;
nuesav = "avance" + nutota;
nubara = "nbarra" + nutota;
document.getElementById("total").innerHTML = "Subidos "+ event.loaded+" bytes de "+event.total;
var percent = (event.loaded / event.total) * 100;
document.getElementById("progressBar").value = Math.round(percent);
document.getElementById(nubara).style.width = Math.round(percent)+'%';
document.getElementById(nuesav).innerHTML = Math.round(percent)+"% subiendo... por favor, espere";
}
function operacion_completada(event,nuar) {
nuesre = "textor" + nuar;
document.getElementById(nuesre).innerHTML = event.target.responseText;
document.getElementById("progressBar").value = 0;
}
function mensaje_error(event) {
document.getElementById("estado").innerHTML = "Error al subir el archivo";
}
function abortar_subida(event) {
document.getElementById("estado").innerHTML = "Upload Abort";
}
salu2.