el detalle es el siguiente, esa funcion la cargo por medio de jquery con el metodo $.load(); o $.ajax al presionar un boton, la fucnion valida mucha información y dependiendo de la cantidad de registros tarda mucho, o poco, queria a ver si es porsible crear una barra de progreso para ver el tiempo (porcentage, registros, etc) que transcurre al carga esa información, yo lo hago con una imagen GIF, pero no me da un tiempo exacto de cuanto dura, y no se si el archivo se guinda, o deja de cargar y no puedo tener detalles de esa lectura.
Código PHP:
public function validarDataExcel($fileName, $id) {
$fileName = "./documentos/excel/archivo.xls";
$typeFile = IOFactory::identify($fileName);
$fileLeer = IOFactory::createReader($typeFile);
$fileCarga = $fileLeer->load($fileName);
$excel = $fileCarga;
$cargar['numero'] = $excel->getActiveSheet()->getHighestRow();
$nun = $cargar['numero'];
for ($i = 2; $i <= $nun; $i++) {
$estado = $excel->getActiveSheet()->getCell("A" . $i)->getValue(); // ESTADO
$municipio = $excel->getActiveSheet()->getCell("B" . $i)->getValue(); // MUNICIPIO
$parroquia = $excel->getActiveSheet()->getCell("C" . $i)->getValue(); // PARROQUIA
$this->getTerritorial($estado, $municipio, $parroquia, $i); // FUNCION VALIDA TERROTORIO
$cargar['proyecto']['estado'][$i] = $this->_estado[$i]; // VARIABLE QUE MUESTRA EL ESTADO
$cargar['proyecto']['municipio'][$i] = $this->_municipio[$i]; // VARIABLE QUE MUESTRA EL MUNICIPIO
$cargar['proyecto']['parroquia'][$i] = $this->_parroquia[$i]; // VARIABLE QUE MUESTRA LA PARROQUIA
$cargar['proyecto']['sector'][$i] = $excel->getActiveSheet()->getCell("D" . $i)->getValue();
$this->getCodigoSitur($excel->getActiveSheet()->getCell("F" . $i)->getValue(), $i); //FUNCION VALIDA EL CODIGO SITUR
$cargar['proyecto']['situr'][$i] = $this->_codigoSitur[$i];
$rifSinAdecuacion = $excel->getActiveSheet()->getCell("G" . $i)->getValue(); //RIF SIN ADECUACIÓN
$rifAdecuado = $excel->getActiveSheet()->getCell("H" . $i)->getValue(); //RIF ADECUADO
$nombreComunal = $excel->getActiveSheet()->getCell("E" . $i)->getValue();
$this->getConsejoComunal($nombreComunal, $rifSinAdecuacion, $rifAdecuado, $i); //FUNCION QUE VALIDA EL CONSEJO COMUNAL Y SUS RIF
//VARIABLE CONSEJO COMUNAL
$cargar['proyecto']['consejo_comunal']['adecuado'][$i] = $this->_nombreComunal['adecuado'][$i];
$cargar['proyecto']['consejo_comunal']['no_adecuado'][$i] = $this->_nombreComunal['no_adecuado'][$i];
//RIF NORMAL
$cargar['proyecto']['rif'][$i] = $this->_rifComunal['no_adecuado'][$i]; //VARIABLE RID SIN ADECUADO
//RIF ADECUADO
$cargar['proyecto']['rif_adecuado'][$i] = $this->_rifComunal['adecuado'][$i]; //VARIABLE RIF ADECUADO
//NUMERO DE CUENTA ADECUADA
$nCuenta = $excel->getActiveSheet()->getCell("I" . $i)->getValue();
;
$this->getNumeroCuenta($nCuenta, $i);
$cargar['proyecto']['n_cuenta_adecuado'][$i] = $this->_numeroCuenta[$i];
$nombreP = $excel->getActiveSheet()->getCell("J" . $i)->getValue();
$descripcionP = $excel->getActiveSheet()->getCell("K" . $i)->getValue();
$this->getInfoProyecto($nombreP, $descripcionP, $i);
$cargar['proyecto']['nombre_proyecto'][$i] = $this->_infoProyecto['nombre_proyectos'][$i];
$cargar['proyecto']['descripcion_proyecto'][$i] = $this->_infoProyecto['descripcion_proyectos'][$i];
$clasificar = $excel->getActiveSheet()->getCell("L" . $i)->getValue();
$tipo = $excel->getActiveSheet()->getCell("M" . $i)->getValue();
$tipologia = $excel->getActiveSheet()->getCell("N" . $i)->getValue();
$this->getClasificarProyecto($clasificar, $tipo, $tipologia, $i);
$cargar['proyecto']['clasificacion_proyecto'][$i] = $this->_clasificarProyecto['clasificar'][$i];
$cargar['proyecto']['tipo'][$i] = $this->_clasificarProyecto['tipo'][$i];
$cargar['proyecto']['tipologia'][$i] = $this->_clasificarProyecto['tipologia'][$i];
;
$this->getMontoProyecto($excel->getActiveSheet()->getCell("O" . $i)->getCalculatedValue(), $i);
$cargar['proyecto']['monto_proyecto'][$i] = $this->_montoProyecto[$i];
}
$this->mostrar_errores();
$cargar['error'] = $this->_errores;
$cargar['ids_pc'] = $id;
$this->load->view('proyecto/carga_masiva/plan_lista_nuevo_proyectos', $cargar);
}
$.ajax({
url: "<?php echo base_url()?>index.php/proyects/proyecto/validarDataExcel/"+data.dato+"/"+id,
type: "POST",
//dataType: 'html',
//timeout: 10000,
//data: {valor:tds[i]},
beforeSend: function() {
$('#lxs').html('<div class="alert"><label>Espere Por Favor, Los Registros Se Están Validando. Este Proceso Podría Tardar Dependiendo De La Cantidad De Registros Almacenados En El Archivo Excel.</label><img src="<?php echo base_url() ?>assest/img/loading2.gif"></div>'); //genero la imagen
},
success: function(data,response) {
$('#lxs').html(data);
}
});
pero con codeigniter no se como generar la barra de progreso, ya que codeigniter trabaja con MVC, y el sistema es practicamente con ajax todo, y e querido generar la carga por medio de el $.load o $.ajax(), ya que en el proceso de lectura la función no genera ningun dato, si no al final cuando carga todo, es que muestra la información.
agradeceria su gran ayuda, Dios los bendiga. Disculpen las molestias causadas.