Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2014, 13:04
dasapa
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 12 años, 6 meses
Puntos: 1
Generar ficheros XML y guardar en ZIP

Hola,

tengo una aplicación para generar ficheros XML con datos de una tabla html. Con un bucle for recorro las filas de la tabla y se van generando todos los XML. El problema es que la funcion descargararchivo abre todos los ficheros en el navegador.

Agradecería alguna ayuda para saber como puedo ir añadiendo estos ficheros en un ZIP (he leido sobre jsZIP pero no se implementarlo en este caso) y poder descargarlo solo el zip.. Les indico el codigo que recorre la table, genera el XML y descarga el archivo.

Código PHP:
//Recorrer la tabla para ir generando XML
for (var i = 0; i <filas.length ; i++) {
descargarArchivo(generarXml(datos), 'archivo.xml');
}

//Genera un objeto Blob con los datos en un archivo XML
function generarXml(datos) {
    var texto = [];
    texto.push('<?xml version="1.0" encoding="UTF-8" ?>\n');
    texto.push('<datos>\n');
    texto.push('\t<nombre>');
    texto.push(datos.nombre);
    texto.push('</nombre>\n');
    
    return new Blob(texto, {
    type: 'application/xml'
    });
};

function descargarArchivo(contenidoEnBlob, nombreArchivo) {
   var reader = new FileReader();
    reader.onload = function (event) {
        var save = document.createElement('a');
        save.href = event.target.result;
        save.target = '_blank';
        save.download = nombreArchivo || 'archivo.dat';
        var clicEvent = new MouseEvent('click', {
            'view': window,
                'bubbles': true,
                'cancelable': true
        });
        save.dispatchEvent(clicEvent);
        (window.URL || window.webkitURL).revokeObjectURL(save.href);
    };
    reader.readAsDataURL(contenidoEnBlob);
};
Muchas gracias. Un saludo