NodeJS est un langage de programmation JavaScript qui s'exécute côté serveur. Son émergence facilite grandement le développement d'applications web. Parmi de nombreuses applications NodeJS, le téléchargement est l'opération la plus courante, et comment vérifier si un téléchargement a réussi est également un problème inévitable dans le développement Web. Cet article explique comment utiliser NodeJS pour vérifier si le téléchargement a réussi.
Dans NodeJS, vous pouvez utiliser http, https, request et d'autres modules pour télécharger des fichiers. Utilisez le module http ou https pour télécharger des fichiers distants et les enregistrer localement ; tandis que le module de requête est plus avancé et peut gérer automatiquement des opérations telles que la redirection, l'acquisition de nom de domaine et les cookies.
Peu importe le module utilisé, que le téléchargement du fichier ait réussi ou échoué, l'état du téléchargement peut être jugé par l'attribut statusCode de l'objet renvoyé. Si statusCode est égal à 200, cela signifie que le téléchargement a réussi, et si statusCode est égal à d'autres valeurs, cela signifie que le téléchargement a échoué.
Par exemple, en utilisant le module http pour télécharger un fichier :
1 2 3 4 5 6 7 8 |
|
Dans le code ci-dessus, lorsque la réponse est renvoyée avec succès, ses données sont enregistrées dans le fichier file.pdf et le code d'état est imprimé. Si statusCode est égal à 200, cela signifie que le téléchargement a réussi. Si le téléchargement échoue, il doit être géré en écoutant l'événement « erreur ».
Par rapport au module http, la vérification du téléchargement du module de requête sera plus pratique. Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Dans cet exemple, utilisez la méthode request.get pour envoyer une requête et écoutez l'événement « response » pour déterminer si le téléchargement a réussi. Si le statusCode de la réponse est 200, cela signifie que le téléchargement a réussi. L'échec du téléchargement doit également être géré en écoutant l'événement « erreur ».
Lors du téléchargement de fichiers volumineux, nous pouvons être plus préoccupés par la progression du téléchargement. Le module de requête peut obtenir chaque élément de données téléchargées en écoutant l'événement « data » pour calculer la progression du téléchargement.
Par exemple, téléchargez un fichier d'environ 100 Mo :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Dans cet exemple, utilisez req.response.headers['content-length'] pour obtenir la taille totale du fichier, en calculant la quantité de données reçues et la taille totale du fichier Obtenez la progression du téléchargement. Dans le même temps, utilisez l'événement req.on('data') pour surveiller le flux de données et obtenir chaque élément de données téléchargées.
Lors de la vérification du succès du téléchargement, nous devrons peut-être également vérifier l'intégrité des fichiers. Dans NodeJS, vous pouvez également utiliser les méthodes fournies par le module fs pour créer des hachages de fichiers, comparer les hachages, etc. afin de vérifier la valeur MD5 du fichier afin de garantir l'intégrité du fichier.
Par exemple, vérifiez la valeur MD5 d'un fichier téléchargé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Dans cet exemple, utilisez la méthode fs.createReadStream pour obtenir le flux de fichier et créez un objet de hachage MD5 via crypto.createHash('md5'), en utilisant le flux L'événement .on('data') met à jour en permanence la valeur de hachage. Une fois le streaming du fichier terminé, la valeur de hachage réelle du fichier est obtenue via hash.digest('hex'), et enfin les valeurs de hachage attendues et réelles sont comparées pour vérifier l'intégrité du fichier.
Lors du téléchargement d'un fichier, vérifier que le téléchargement a réussi n'est que la première étape, et vérifier l'intégrité du fichier est la clé pour garantir la sécurité des données. Grâce aux méthodes présentées ci-dessus, nous pouvons vérifier rapidement le succès du téléchargement et l'intégrité des fichiers dans NodeJS, améliorant ainsi la sécurité et la stabilité des applications Web.
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!