Maison > Questions et réponses > le corps du texte
PHP importe Excel et la réception affiche une barre de progression, veuillez me donner quelques conseils (pas la progression du téléchargement des fichiers Excel, mais la barre de progression de la lecture de php Excel-> traitement des données-> écriture sur MySQL)
天蓬老师2017-05-24 11:36:21
Cela dépend de la taille de votre Excel et du temps maximum autorisé par le serveur pour une requête. Je pense que cela peut être divisé dans les situations suivantes :
Excel est très petit et l'importation s'effectue en une seconde ou deux - dans ce cas, il suffit d'afficher une fausse barre de progression. Par exemple : la progression de l'animation dans la première seconde atteint 50 %, la progression dans la deuxième seconde atteint 75 %, la progression de la troisième animation atteint 90 %, puis la progression atteint 100 % après le retour du serveur OK.
Excel est relativement volumineux, mais il peut être complété dans le délai maximum imparti par le serveur pour une requête -- Dans ce cas, il existe plusieurs approches :
Pour être simple et brut, estimez la progression de l'importation dans Excel et stockez-la dans un certain emplacement (comme un champ dans la base de données). Faites une autre requête ajax ou EventSource pour interroger la progression à chaque période de temps (par exemple 500 ms). ) et affichez-le.
Utilisez une connexion HTTP longue pour afficher la progression de la demande d'importation Excel. N'oubliez pas d'actualiser le navigateur à temps. Le navigateur affiche une animation de progression basée sur les données renvoyées.
Excel est très volumineux ou l'activité est complexe et ne peut pas être terminée dans le délai maximum autorisé par le serveur pour une requête. À l'heure actuelle, si le serveur peut exécuter un script CLI, il est recommandé d'exécuter un script CLI pour importer (pour l'affichage de la progression, veuillez vous référer à 2.1) ; Sinon, vous devez diviser Excel en étapes/temps/sections, puis effectuer la tâche d'importation étape par étape dans le navigateur, et afficher la progression en fonction des résultats divisés.
我想大声告诉你2017-05-24 11:36:21
Puis-je obtenir le nombre total d’enregistrements après avoir lu Excel ?
Oui, comptez simplement le nombre d'enregistrements traités/le nombre total.
Non, alors abandonnez la barre de progression d'achèvement à 100 % et créez simplement une barre de progression qui boucle à plusieurs reprises pour montrer que je suis toujours en vie.
PHPz2017-05-24 11:36:21
Je ne sais pas si vous pouvez utiliser swoole, c'est-à-dire qu'après avoir téléchargé Excel, obtenez le nombre d'enregistrements, puis utilisez directement swoole pour importer SQL. Vous pouvez obtenir le pourcentage de progression de votre page actuelle en comptant le nombre d'enregistrements dans la base de données.