PHP - ¿como colocar una barra de carga mientras sube archivos a la base de datos?

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 471 puestos en PHP (en relación al último mes)
Gráfica de PHP

¿como colocar una barra de carga mientras sube archivos a la base de datos?

Publicado por hugo (31 intervenciones) el 07/11/2019 13:55:13
Buenos Dias

subo un archivo a mi base de datos con el siguiente codigo me gustaria poder mostrar una barra de proceso de carga real o en su defecto una imagen tipo gif que muestre que se esta cargardo aunque no sea real dado que ahora la pagina se queda en blanco durante 3 o 4 minutos mientras sube el archivo.


index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
include('header.php');
include_once("db_connect.php");
?>
 
<script type="text/javascript" src="script/validation.min.js"></script>
<script type="text/javascript" src="script/login.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
 
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen">
<?php include('container.php');?>
<div class="container">
	<h2>Example: Import CSV File into MySQL using PHP</h2>
    <?php if(!empty($import_status_message)){
        echo '<div class="alert '.$message_stauts_class.'">'.$import_status_message.'</div>';
    } ?>
    <div class="panel panel-default">
        <div class="panel-body">
			<br>
			<div class="row">
				<form action="import.php" method="post" enctype="multipart/form-data" id="import_form">
						<div class="col-md-3">
						<input type="file" name="file" />
						</div>
						<div class="col-md-5">
						<input type="submit" class="btn btn-primary" name="import_data" value="IMPORT"></div>
				</form>
			</div>
 
 
<?php
 
 
if(!empty($_GET['import_status'])) {
    $sql = "SELECT COUNT(*) total FROM Hoja2 ORDER BY ccpp DESC LIMIT 26000";
    $resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
    $total = mysqli_fetch_row($resultset);
 
    echo "La cantidad de registros es: ".$total[0];
 
    if(mysqli_num_rows($resultset)) {
    while( $rows = mysqli_fetch_assoc($resultset) ) {
    ?>
 
    <?php } } else { ?>
    <tr><td colspan="5">No records to display.....</td></tr>
    <?php }
 
 
    switch($_GET['import_status']) {
        case 'success':
            $message_stauts_class = 'alert-success';
            $import_status_message = 'Employee data inserted successfully.';
            break;
 
        case 'error':
            $message_stauts_class = 'alert-danger';
            $import_status_message = 'Error: Please try again.';
            break;
        case 'invalid_file':
            $message_stauts_class = 'alert-danger';
            $import_status_message = 'Error: Please upload a valid CSV file.';
            break;
        default:
            $message_stauts_class = '';
            $import_status_message = '';
    }
}
 
?>



import.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
include_once("db_connect.php");
 
 
$resultset = mysqli_query($conn, "DELETE FROM Hoja2");
if(isset($_POST['import_data'])){
// validate to check uploaded file is a valid csv file
$file_mimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');
if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$file_mimes)){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
$csv_file = fopen($_FILES['file']['tmp_name'], 'r');
//fgetcsv($csv_file);
// get data records from csv file
while(($emp_record = fgetcsv($csv_file,10000, ";")) !== FALSE){
// Check if employee already exists with same email
 
$sql_query = "SELECT ccpp, titular, ubicacion, fecha FROM Hoja2 WHERE ccpp = '".$emp_record[0]."'";
$resultset = mysqli_query($conn, $sql_query) or die("database error:". mysqli_error($conn));
 
 
 
 
$mysql_insert = "INSERT INTO Hoja2 (ccpp, titular, ubicacion , fecha )VALUES('".$emp_record[0]."', '".$emp_record[1]."', '".$emp_record[2]."', '".$emp_record[3]."')";
mysqli_query($conn, $mysql_insert) or die("database error:". mysqli_error($conn));
 
}
fclose($csv_file);
$import_status = '?import_status=success';
} else {
$import_status = '?import_status=error';
}
} else {
$import_status = '?import_status=invalid_file';
}
}
header("Location: index.php".$import_status);
?>


saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿como colocar una barra de carga mientras sube archivos a la base de datos?

Publicado por xve (6926 intervenciones) el 07/11/2019 16:06:06
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 471 puestos en PHP (en relación al último mes)
Gráfica de PHP

¿como colocar una barra de carga mientras sube archivos a la base de datos?

Publicado por hugo (31 intervenciones) el 08/11/2019 22:00:44
buenos dias gracias por la respuesta efectivamente realice algo similar coloque una barra de carga para cuando sube el archivo y puse un gif para cuando esta cargando los datos de este archivo a la base de datos

me gustaría poder visualizar el porcentaje real de carga en la base de datos pero = funciona bien.

saludos y gracias por la respuesta si alguien me puede decir como realizar la barra de carga en la parte que sube a la base de datos seria genial si no esta bien la barra de proceso para subir el archivo y el gif en la espera mientras que coloca los datos en la base de datos.

como siempre muy atentos en las respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar