Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/09/2012, 12:33
cnunez
 
Fecha de Ingreso: diciembre-2011
Ubicación: Villa Lugano
Mensajes: 86
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Respuesta: Mostrar progreso en backup

He hecho el script con Ajax pero no me funciona como pretendo. La idea es que el dibujito de "progreso" (gif animado) no desaparezca hasta que no termine de construir el zip. El problema es que tarda mucho porque es una gran cantidad de imágenes y termina tirando error en la página, cuando en realidad en el servidor sigue comprimiendo los archivos.

Cito el código:

Código:
// HTML:

<button id="miBoton">Procesar</button>
<div id="comienzo"></div><div id="base"></div>

<script type="text/javascript">
$('#miBoton').click( function() {
			var a = confirm("Est\xe1s seguro de comenzar?");
			if(!a) return false;
			var g = document.getElementById('miBoton');
			g.disabled = 'disabled';
			$('#comienzo').html("Procesando...");
			$('#base').html("<img src='imagenes/progress.gif' />");
			$.ajax({
				type: 'POST',
				url: 'response.php',
				data: 'bkp=base',
				success: function(data){
					$('#base').html(data);
				}
			})
	})
</script>

// PHP (response..php)
switch($_POST["bkp"]) {
	case "base":
		if(miBackup()) echo "<img src='imagenes/tilde.png' />";
		else echo "<span style='color:red;'>Error</span>";
		break;
       case ...
}

function miBackup() {
	$zip = new ZipArchive();
	$arch = "misBackups/backup.zip";	
	// Leemos el directorio cartas
	$conexDir = opendir("../imagenes/cartas");
	$elemento = array();
	while($file = readdir($conexDir)) {
		if(($file != '.') && ($file != '..')) {
			if(!is_file($file)) {
				$elemento[] = $file;
				}
        }
    }	
	closedir($conexDir);
	// Agregamos las cartas al zip. 
	if($zip->open($arch,ZIPARCHIVE::CREATE) === true) {
		$zip->addEmptyDir("cartas");
		for($i=0;$i<count($elemento);$i++) {
			$zip->addFile("../imagenes/cartas/".$elemento[$i],"cartas/".$elemento[$i]);
		}
		$zip->close();
		return true;
	}
	else return false;
}
}
Muchas gracias!