


Utilisez HTML5 pour implémenter le téléchargement de fichiers asynchrone, prendre en charge plusieurs domaines et télécharger une barre de progression
Mar 24, 2017 pm 03:27 PML'éditeur suivant vous proposera un article qui utilise HTML5 pour télécharger des fichiers de manière asynchrone, prend en charge plusieurs domaines et dispose d'une barre de progression de téléchargement. L'éditeur le trouve plut?t bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour jeter un ?il
Préparation du serveur pour IIS
Vous devez définir l'en-tête de réponse HTTP dans IIS, comme indiqué dans sur la figure, ajoutez les paramètres suivants, ajoutez ceci "Access-Control-Allow-Origin". Ce n'est qu'en ajoutant cette ligne que la prise en charge entre domaines peut être prise en charge. Sinon, les navigateurs Chrome signaleront une erreur
.
Code de la page?:
Code XML/HTMLCopier le contenu dans le presse-papiers
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> <title>Html5上傳文件</title> </head> <body> <p class="app"> <h1>Html5上傳文件測試,帶進度條</h1> <p> <input type="file" value="" id="fileInput" name="files" onchange="fileSelected()" /> <p style="margin:30px;"> <input type="button" value="上傳" onclick="uploadFile()" /> </p> <p style="margin:30px;"> <p id="fileName"></p> <p id="fileSize"></p> <p id="fileType"></p> </p> <p style="margin:30px;width:500px;height:15px;border:1px solid #aeaeae;"> <p id="progress" style="background:#4cff00;height:15px;width:0%;"></p> <p id="percentNumber"></p> </p> <p style="margin:30px;"> <p id="msg"></p> </p> </p> </p> <script type="text/javascript"> function fileSelected() { //重置狀態(tài)顯示 document.getElementById("msg").innerHTML = ""; document.getElementById('percentNumber').innerHTML = ''; document.getElementById("progress").style.width = "0%"; var file = document.getElementById('fileInput').files[0]; if (file) { var fileSize = 0; if (file.size > 1024 * 1024) fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB'; else fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB'; document.getElementById('fileName').innerHTML = 'Name: ' + file.name; document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize; document.getElementById('fileType').innerHTML = 'Type: ' + file.type; } } function uploadFile() { var fd = new FormData(); fd.append("fileInput", document.getElementById('fileInput').files[0]); var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", uploadProgress, false); xhr.addEventListener("load", uploadComplete, false); xhr.addEventListener("error", uploadFailed, false); xhr.addEventListener("abort", uploadCanceled, false); xhr.open("POST", "http://10.0.0.200:9001/Home/Upload");//修改為自己服務(wù)器接口地址 //xhr.setRequestHeader("Access-Control-Allow-Origin", "*");//需要在IIS里面配置,就可以跨域請求了 //xhr.setRequestHeader("Content-Type", "multipart/form-data"); xhr.send(fd); } function uploadProgress(evt) { if (evt.lengthComputable) { var percentComplete = Math.round(evt.loaded * 100 / evt.total); document.getElementById('percentNumber').innerHTML = percentComplete + '%'; var jindutiao = document.getElementById("progress"); jindutiao.style.width = percentComplete + "%"; } else { document.getElementById('percentNumber').innerHTML = '不支持進度計算'; } } function uploadComplete(evt) { //evt.target.responseText document.getElementById("msg").innerHTML = "上傳成功"; } function uploadFailed(evt) { document.getElementById("msg").innerHTML = "上傳過程中有一個錯誤"; } function uploadCanceled(evt) { document.getElementById("msg").innerHTML = "用戶取消了上傳或者瀏覽器刪除了連接"; } </script> </body> </html>
L'article ci-dessus utilise HTML5 pour implémenter le téléchargement de fichiers asynchrone, prend en charge plusieurs domaines et dispose d'une barre de progression du téléchargement. Il s'agit de tout le contenu partagé par l'éditeur. . J'espère que cela pourra vous donner une référence et j'espère que vous en lirez davantage sur le site Web chinois de Support PHP.
Pour plus d'informations sur l'utilisation de HTML5 pour télécharger des fichiers de manière asynchrone, prendre en charge plusieurs domaines et disposer d'une barre de progression de téléchargement, veuillez prêter attention au site Web PHP chinois pour les articles connexes?!
Articles connexes?:
Comment obtenir le chemin du fichier de téléchargement thinkphp3.2.3
Exemple de code pour Thinkphp3.2.3 pour intégrer phpqrcode pour générer Partage de code QR
PHP réalise le téléchargement de fichiers sans actualisation de page

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Lorsque vous utilisez HTML5SSE, les méthodes pour gérer la reconnexion et les erreurs incluent: 1. Comprendre le mécanisme de reconnexion par défaut. Eventsource réessayer 3 secondes après l'interrompu de la connexion par défaut. Vous pouvez personnaliser l'intervalle via le champ de réessayer; 2. écoutez l'événement d'erreur pour gérer les erreurs de défaillance de connexion ou d'analyse, distinguer les types d'erreurs et exécuter la logique correspondante, telles que les problèmes de réseau en s'appuyant sur la reconnexion automatique, les erreurs de serveur retardent manuellement la reconnexion et la défaillance de l'échec d'authentification Rafra?chissement du jeton; 3. Contr?lez activement la logique de reconnexion, telle que la fermeture et la reconstruction manuelle de la connexion, en définissant le nombre maximum de temps de réessayer, combinant Navigator.online pour juger l'état du réseau pour optimiser la stratégie de réessayer. Ces mesures peuvent améliorer la stabilité des applications et l'expérience utilisateur.

HTML5, CSS et JavaScript doivent être combinés efficacement avec des balises sémantiques, un ordre de chargement raisonnable et une conception de découplage. 1. Utilisez des étiquettes sémantiques HTML5, telles que l'amélioration de la clarté structurelle et de la maintenabilité, qui est propice au référencement et à l'accès sans barrière; 2. CSS doit être placé, utiliser des fichiers externes et se séparer par module pour éviter les styles en ligne et les problèmes de chargement retardés; 3. JavaScript est recommandé d'être introduit à l'avant et d'utiliser un repère ou une asynchronisation pour charger de manière asynchrone pour éviter le blocage du rendu; 4. Réduisez une forte dépendance entre les trois, conduisez le comportement à travers les attributs de données * et l'état de contr?le du nom de classe et améliorez l'efficacité de la collaboration grace à des spécifications de nommage unifiées. Ces méthodes peuvent optimiser efficacement les performances des pages et collaborer avec les équipes.

Doctype est une déclaration qui indique au navigateur quelle norme HTML à utiliser pour analyser la page. Les pages Web modernes ne doivent être écrites qu'au début du fichier HTML. Sa fonction est de s'assurer que le navigateur rend la page en mode standard plut?t qu'en mode bizarre, et doit être situé sur la première ligne, sans espaces ni commentaires devant lui; Il n'y a qu'une seule fa?on correcte de l'écrire, et il n'est pas recommandé d'utiliser d'anciennes versions ou d'autres variantes; D'autres tels que le marbre, la fenêtre, etc. doivent être placés en partie.

Il s'agit d'un élément au niveau du bloc, adapté à la mise en page; Il s'agit d'un élément en ligne, adapté à l'emballage du contenu texte. 1. Occuper exclusivement une ligne, une largeur, une hauteur et des marges peuvent être définies, qui sont souvent utilisées dans la disposition structurelle; 2. Aucune ligne ne se casse, la taille est déterminée par le contenu et convient aux styles de texte locaux ou aux opérations dynamiques; 3. Lors du choix, il doit être jugé en fonction de la question de savoir si le contenu a besoin d'espace indépendant; 4. Il ne peut pas être imbriqué et ne convient pas à la mise en page; 5. La priorité est donnée à l'utilisation des étiquettes sémantiques pour améliorer la clarté structurelle et l'accessibilité.

MSE (MediaSourceExtensions) fait partie de la norme W3C, permettant à JavaScript de construire dynamiquement des flux de médias, permettant ainsi des capacités de lecture vidéo avancées. Il gère les sources multimédias via MediaSource, stocke les données de SourceBuffer et représente la plage de temps tampon par Timeranges, permettant au navigateur de charger et de décoder dynamiquement des clips vidéo. Le processus d'utilisation de MSE comprend: ① Créer une instance MediaSource; ② Le lier à un élément; ③ Ajouter SourceBuffer pour recevoir des données dans un format spécifique; ④ Obtenez des données segmentées via fetch () et ajoutez-les au tampon. Les précautions courantes comprennent: ① Problèmes de compatibilité du format; ② Paire de coups horaires

HTML5Introduit newinputTypesthatenHanceFormFonctionality andUserexperiendByImprovingValidation, UI, andmobilekeyboardlayouts.1.emailvalidateSemailAddressAndSupportsMultiplentries.2.urlchecksforvalidwebaddressandtriggersurl-optimizedkeyboard

Il est plus pratique de soumettre des données de formulaire à l'aide de l'API FormData de HTML5. 1. Il peut collecter automatiquement les champs de formulaire avec l'attribut de nom ou ajouter manuellement des données; 2. Il prend en charge la soumission au format multipart / format de format de format via Fetch ou XMLHTTPRequest, qui convient au téléchargement de fichiers; 3. Lors du traitement des fichiers, vous n'avez qu'à ajouter le fichier pour formerdata et envoyer une demande; 4. Notez que le champ du même nom sera écrasé et que la conversion JSON et aucune structure de nidification ne doivent être manipulées.

Pour obtenir l'emplacement actuel de l'utilisateur, utilisez le HTML5 GeolocationAPI. Cette API fournit des informations telles que la latitude et la longitude après l'autorisation de l'utilisateur. La méthode principale est GetCurrentPosition (), qui nécessite une gestion réussie et d'erreur pour être gérée; Dans le même temps, faites attention à la condition préalable HTTPS, au mécanisme d'autorisation de l'utilisateur et au traitement du code d'erreur. ① Appelez GetCurrentPosition pour obtenir le poste une fois, et un rappel d'erreur sera déclenché en cas d'échec; ② L'utilisateur doit l'autoriser, sinon il ne peut pas être obtenu et peut ne plus être invité; ③ Le traitement des erreurs doit faire la distinction entre le rejet, le délai d'expiration, l'emplacement indisponible, etc.; ④ Activer la haute précision, le délai d'expiration, etc., et peut être configuré via le troisième paramètre; ⑤ L'environnement en ligne doit utiliser HTTPS, sinon il peut être limité par le navigateur.
