recherche
Maisoninterface Webjs tutorielComment créer des barres de progression de téléchargement de fichiers graphiques dans HTML5 et JavaScript

Comment créer des barres de progression de téléchargement de fichiers graphiques dans HTML5 et JavaScript

Les plats clés

  • La balise de progression HTML5, qui fournit des attributs pour la valeur de progression et la valeur actuelle à la fin, peut être utilisée pour créer une barre de progression de téléchargement de fichiers graphiques, bien que l'auteur ait choisi d'utiliser une balise P standard pour plus d'options de style.
  • La barre de progression peut être stylée à l'aide de CSS, avec la barre verte créée comme un graphique deux fois plus large que l'élément de progression, et une couleur solide appliquée lorsque le téléchargement réussit ou échoue.
  • La barre de progression est implémentée dans JavaScript en modifiant la fonction uploadFile (), en ajoutant une fonction de gestionnaire d'événements «Progress» qui calcule la nouvelle position d'arrière-plan et définir une classe de «succès» ou «défaillance» lorsque le téléchargement se termine.
Dans mes articles précédents, nous avons découvert comment utiliser le fichier html5 glisser-déposer, ouvrir des fichiers à l'aide de JavaScript et télécharger de manière asynchrone des fichiers à l'aide d'Ajax. Dans la dernière partie de cette série, nous couvrons la partie la plus excitante du processus: les barres de progrès graphiques! Les barres de progrès de téléchargement de fichiers fournissent des commentaires essentiels des utilisateurs, mais ils ont été notoirement difficiles à mettre en œuvre. Jusqu'à présent, c'est. Firefox et Chrome prennent en charge l'objet XMLHTTPRequest2 qui propose un gestionnaire d'événements de progression. Mais d'abord, considérons comment notre barre de progrès sera mise en œuvre…

La balise de progression HTML5

La nouvelle balise de progrès fournit deux attributs:
  • Valeur: la valeur de progression actuelle
  • Max: la valeur à l'achèvement
La balise aurait été idéale dans cette démonstration et, bien qu'elle soit prise en charge dans Chrome, elle est juste apparue dans Firefox 6. De plus, aucun du navigateur n'offre de nombreuses propriétés de style, donc je l'ai laissée en faveur d'une balise P standard. Ceci est annexé en tant qu'enfant à un div avec l'identifiant «progrès».

Styler la barre de progrès

Notre balise P affichera le nom de fichier dans une boîte bordée de 250px de 250px:
#progress p
{
	display: block;
	width: 240px;
	padding: 2px 5px;
	margin: 2px 0;
	border: 1px inset #446;
	border-radius: 5px;
}
Pour la barre verte elle-même, j'ai créé un graphique qui était deux fois plus large que l'élément de progression (500px). La gauche 250px est colorée et la droite 250px est transparente: Comment créer des barres de progression de téléchargement de fichiers graphiques dans HTML5 et JavaScript Ce graphique est utilisé comme image d'arrière-plan pour la barre de progression et positionné à «x% 0» où x% indique la proportion qui reste (non terminée), c'est-à-dire
  • Les progrès commencent à partir de la «position de fond: 100% 0», c'est-à-dire 100% restant
  • Les progrès se terminent à «Position d'arrière-plan: 0% 0», c'est-à-dire que rien ne reste
  • «Position d'arrière-plan: 30% 0» signifie que 70% ont été achevés: Comment créer des barres de progression de téléchargement de fichiers graphiques dans HTML5 et JavaScript
Une couleur unie est appliquée en définissant une classe lorsque le téléchargement réussit ou échoue:
#progress p
{
	display: block;
	width: 240px;
	padding: 2px 5px;
	margin: 2px 0;
	border: 1px inset #446;
	border-radius: 5px;
}

Implémentation de la barre de progression dans JavaScript

Nous pouvons maintenant modifier notre fonction uploadFile (). Lorsqu'un fichier JPG valide est rencontré, nous ajoutons une nouvelle balise P à l'élément #Progress et ajoutons le nom de fichier en tant que texte:
#progress p.success
{
	background: #0c0 none 0 0 no-repeat;
}

#progress p.failed
{
	background: #c00 none 0 0 no-repeat;
}
Nous avons maintenant besoin d'une fonction de gestionnaire d'événements «Progress». Cela reçoit un objet avec des propriétés. Télélées et.
// upload JPEG files
function UploadFile(file) {

	var xhr = new XMLHttpRequest();
	if (xhr.upload && file.type == "image/jpeg" && file.size 


Si vous connaissez Ajax, vous reconnaîtrez le gestionnaire d'événements OnreadyStateChange. Cela détermine quand le téléchargement s'est terminé et styles la barre de progression en conséquence (définit une classe de «succès» si le téléchargement a réussi):

<pre class="brush:php;toolbar:false">
		// progress bar
		xhr.upload.addEventListener("progress", function(e) {
			var pc = parseInt(100 - (e.loaded / e.total * 100));
			progress.style.backgroundPosition = pc + "% 0";
		}, false);
Enfin, nous envoyons le fichier à notre serveur PHP comme avant:
		// file received/failed
		xhr.onreadystatechange = function(e) {
			if (xhr.readyState == 4) {
				progress.className = (xhr.status == 200 ? "success" : "failure");
			}
		};
Nous avons enfin une solution qui:
  1. Active le glisser et la décharge de fichiers sur un élément de page Web
  2. analyse et affiche des fichiers supprimés sur le client
  3. télécharge de manière asynchrone des fichiers sur le serveur
  4. montre une barre de progrès graphique lors du téléchargement
  5. utilise une amélioration progressive pour soutenir la plupart des navigateurs
  6. est codé sans nécessiter de bibliothèque JavaScript.
Veuillez consulter la page de démonstration, cependant, notez qu'il est hébergé sur un serveur sans PHP afin que les téléchargements de fichiers ne se produisent pas. Pour le tester, veuillez télécharger les fichiers pour examiner le code et l'héberger sur votre propre serveur. J'espère que vous avez apprécié cette série et que vous envisagez comment le glisser-déposer des fichiers pourrait aider votre application Web. Si vous avez aimé lire ce post, vous aimerez l'apprentissage; L'endroit pour acquérir de nouvelles compétences et techniques de la maîtrise. Les membres ont un accès instantané à tous les livres électroniques de SitePoint et aux cours en ligne interactifs, comme Learn HTML5.

Questions fréquemment posées (FAQ) sur HTML5 JavaScript Fichier Upload Progress Bar

Comment puis-je personnaliser l'apparence de la barre de progression?

Personnalisation L'apparence de la barre de progrès peut être effectuée à l'aide de CSS. Vous pouvez modifier la couleur, la hauteur, la largeur et même la forme de la barre de progrès. Par exemple, pour modifier la couleur, vous pouvez utiliser la propriété «fond d'arrière-plan». Vous pouvez également utiliser la propriété «Border-Radius» pour rendre la barre de progression circulaire ou arrondie. N'oubliez pas de cibler la classe ou l'identification correcte de votre CSS pour appliquer ces modifications à la barre de progression.

Puis-je utiliser cette barre de progression pour plusieurs téléchargements de fichiers?

Oui, vous pouvez utiliser ce progrès bar pour plusieurs téléchargements de fichiers. Cependant, vous devrez modifier le code JavaScript pour gérer plusieurs fichiers. Vous pouvez utiliser l'attribut «multiple» dans la balise d'entrée pour permettre la sélection de plusieurs fichiers. Ensuite, dans votre javascript, vous devrez parcourir les fichiers et les télécharger individuellement, à la mise à jour de la barre de progression pour chaque fichier.

Comment puis-je afficher le pourcentage d'achèvement de téléchargement sur la barre de progression?

L'affichage du pourcentage d'achèvement de téléchargement sur la barre de progression peut être réalisé en mettant à jour le contenu texte de l'élément de barre de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progrès 'Écouteur d'événements. Vous pouvez calculer le pourcentage en divisant la quantité chargée par la quantité totale et en multipliant par 100. Ensuite, définissez cette valeur comme le contenu texte de l'élément de barre de progression.

Pourquoi ma barre de progression ne se met pas à jour pendant le fichier Téléchargement du fichier ?

Si votre barre de progression ne se met pas à jour pendant le téléchargement de fichiers, cela pourrait être dû à plusieurs raisons. Une raison courante est que l'auditeur d'événements «Progress» n'est pas configuré correctement. Assurez-vous que vous avez ajouté l'écouteur d'événements à l'objet correct et que le nom de l'événement est correctement orthographié. Vérifiez également que le code à l'intérieur de l'écouteur d'événements met à jour correctement la valeur et les attributs max de la barre de progression.

Puis-je utiliser cette barre de progression avec d'autres langages de programmation comme PHP ou Python?

Oui, vous pouvez utiliser cette barre de progrès avec d'autres langages de programmation comme PHP ou Python. La barre de progression est implémentée à l'aide de HTML et JavaScript, qui sont des technologies côté client et peuvent interagir avec n'importe quelle technologie côté serveur. Vous devrez modifier la demande AJAX dans le code JavaScript pour envoyer le fichier à votre script côté serveur, et votre script côté serveur devra gérer le téléchargement du fichier et renvoyer les informations de progression.

Comment peut Je fais en bondre la barre de progression?

Pour que la barre de progrès soit en douceur, vous pouvez utiliser les transitions CSS. Ajoutez une propriété «transition» à l'élément de barre de progression dans votre CSS, en spécifiant la propriété à la transition (par exemple, «largeur»), la durée de la transition et la fonction de synchronisation (par exemple, «linéaire», «facilité» , «faciliter»).

Comment puis-je gérer les erreurs pendant le téléchargement de fichiers?

Les erreurs de traitement pendant le téléchargement de fichiers peuvent être effectuées dans l'écouteur d'événements «Erreur». Cet événement est licencié lorsqu'une erreur se produit pendant le téléchargement. Dans l'événement, vous pouvez afficher un message d'erreur à l'utilisateur et réinitialiser la barre de progression.

Puis-je annuler le téléchargement de fichiers et réinitialiser la barre de progression?

Oui, vous pouvez annuler le Téléchargement de fichiers et réinitialisez la barre de progression. Pour annuler le téléchargement de fichiers, vous pouvez appeler la méthode «Aborter» sur l'objet XMLHTTPRequest. Pour réinitialiser la barre de progression, vous pouvez définir son attribut de valeur sur 0.

Comment puis-je limiter la taille du fichier pour le téléchargement?

limiter la taille du fichier pour le téléchargement peut être effectué dans le code JavaScript Avant d'envoyer la demande Ajax. Vous pouvez obtenir la taille du fichier à partir de la propriété «Taille» de l'objet de fichier, et si elle dépasse votre limite, affichez un message d'erreur et avortez le téléchargement.

Puis-je utiliser cette barre de progrès pour d'autres types de demandes AJAX, pas seulement les téléchargements de fichiers?

Oui, vous pouvez utiliser cette barre de progression pour d'autres types de demandes AJAX, pas seulement les téléchargements de fichiers. L'événement «Progress» est licencié pour tout type de demande AJAX, pas seulement les téléchargements de fichiers. Vous devrez modifier le code JavaScript pour envoyer la demande AJAX appropriée et mettre à jour la barre de progression en fonction de la progression de la demande.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Au-delà du navigateur: Javascript dans le monde réelAu-delà du navigateur: Javascript dans le monde réelApr 12, 2025 am 12:06 AM

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript: Explorer la polyvalence d'un langage WebJavaScript: Explorer la polyvalence d'un langage WebApr 11, 2025 am 12:01 AM

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

L'évolution de JavaScript: tendances actuelles et perspectives d'avenirL'évolution de JavaScript: tendances actuelles et perspectives d'avenirApr 10, 2025 am 09:33 AM

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Démystifier javascript: ce qu'il fait et pourquoi c'est importantDémystifier javascript: ce qu'il fait et pourquoi c'est importantApr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python ou JavaScript est-il meilleur?Python ou JavaScript est-il meilleur?Apr 06, 2025 am 12:14 AM

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

Comment installer JavaScript?Comment installer JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code