Introduction détaillée à l'API HTML5 File pour implémenter la reprise du point d'arrêt
黄舟
Libérer: 2017-03-27 15:11:25
original
1528 Les gens l'ont consulté
Actuellement, la plupart des sites Web du marché nécessitent l'installation de plug-ins de navigateur pour le téléchargement de points d'arrêt. Cet article est destiné aux environnements de navigateur avancés, via HTML5Fichierapi. Implémenter le téléchargement de points d'arrêt pour explication
1. Implémenter la sélection de fichiers multiples
L'attribut de HTML5 a ajouté l'attribut "multiple", qui peut accepter plusieurs valeurs. Champ
Avec cet attribut ajouté, les utilisateurs peuvent sélectionner plusieurs fichiers à la fois dans la boîte de dialogue contextuelle 2. Implémenter le téléchargement de fichiers à partir de la fonction de glisser l'ordinateur à la page Web et en ajoutant la file d'attente des fichiersIci, nous utilisons les événements de glisser-déposer pour gérer la fonction de déplacement de fichiersLe glisser-déposer est utilisé pour gérer lors du déplacement sur l'événement spécifié, ici. nous lions le temps de glisser au corps pour gérer l'événement de glisser le fichier sur la page
Utilisez l'événement drop pour gérer l'événement lorsque la souris est relâchée À ce moment, l'utilisateur devrait être. glissé Les fichiers sont ajoutés à la file d'attente de téléchargement pour un traitement ultérieur
3. Principe de reprise des fichiersIl existe deux méthodes couramment utilisées pour reprendre le téléchargement aux points d'arrêt, l'une est l'autre. pour télécharger des fichiers via l'interface websocket, et l'autre via ajax. Les deux méthodes ont leurs propres avantages et inconvénients. Bien que websocket semble plus haut de gamme, à l'exception de l'utilisation de protocoles différents, les autres algorithmes sont fondamentalement très similaires et le côté serveur. activez l'interface ws, l'ajax relativement pratique est utilisé pour illustrer l'idée du téléchargement de point d'arrêt. Après tout, le contenu principal du téléchargement de CV est de « découper » le fichier, puis de le transférer morceau par morceau sur le serveur. Cependant, ce processus de téléchargement apparemment simple comporte d'innombrables pièges. La première est l'identification du fichier. Une fois qu'un fichier est divisé en plusieurs parties, comment indiquer au serveur combien de morceaux vous avez coupé et comment le serveur doit finalement fusionner les fichiers que vous avez téléchargés, tout cela doit être fait. être considéré. Ainsi, avant que le fichier ne commence à être téléchargé, nous devons avoir un processus de « poignée de main » avec le serveur, indiquer au serveur les informations sur le fichier, puis convenir avec le serveur de la taille des tranches après avoir atteint. un consensus avec le serveur, nous pouvons démarrer les fichiers suivants transmis. Le front-end doit transmettre chaque morceau de fichier au back-end. Après le succès, le front-end et le back-end doivent être marqués pour les points d'arrêt ultérieurs. Lorsque le transfert de fichier est interrompu, l'utilisateur peut sélectionner à nouveau le fichier et utiliser le logo pour déterminer si une partie du fichier a été téléchargée. Si tel est le cas, nous pouvons alors continuer à télécharger le fichier en fonction du dernier. Progrès pour atteindre la fonction de reprise du téléchargement. 4. Découpage frontal des fichiers Avec l'API HTML5 File, couper des fichiers est beaucoup plus simple qu'on ne l'imaginait. Utilisez simplement la méthode des tranches
var packet = file.slice(start, end);
Copier après la connexion
Le paramètre start est la position où commence la tranche, et end est la position où se termine la tranche. Les unités sont toutes des octets. En contrôlant le début et la fin, vous pouvez réaliser une segmentation de fichiers telle que
5. Télécharger des fragments de fichiers Dans la partie précédente, nous avons utilisé la méthode slice pour télécharger des fichiers Divisés en plusieurs morceaux, la prochaine chose à faire est de transférer ces fragments vers le serveur. Ici, nous utilisons la
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