Maison > interface Web > js tutoriel > Comment télécharger des fichiers à partir d'un serveur Node.js à l'aide d'Express ?

Comment télécharger des fichiers à partir d'un serveur Node.js à l'aide d'Express ?

Barbara Streisand
Libérer: 2024-12-04 21:25:15
original
845 Les gens l'ont consulté

How Do I Download Files from a Node.js Server Using Express?

Téléchargement de fichiers à partir d'un serveur Node.js avec Express

Le framework Express de Node.js offre un moyen pratique de télécharger des fichiers d'un serveur vers un client. Pour faciliter cela, suivez ces étapes :

Définition des en-têtes

Lors de l'envoi d'un fichier, il est crucial de définir les en-têtes HTTP corrects pour fournir au client des informations essentielles telles que le nom et le type du fichier.

  • Content-disposition : définissez cet en-tête sur « pièce jointe ; » nom de fichier=' pour spécifier le nom du fichier tel que vu par le client.
  • Content-type : Indiquez le type de fichier en cours de téléchargement, tel que 'video/quicktime'.

Diffusion de fichiers asynchrone

Pour améliorer les performances, utilisez des flux de fichiers pour transmettre des données au lieu de lire l'intégralité du fichier de manière synchrone. Cette approche minimise les retards potentiels ou les problèmes de mémoire.

Solution améliorée

Express inclut désormais une fonction intégrée pour le téléchargement de fichiers :

app.get('/download', function(req, res) {
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Sets the appropriate headers and streams the file.
});
Copier après la connexion

Solution héritée

Avant la fonctionnalité de téléchargement intégrée d'Express, le code suivant fournit un téléchargement de fichier plus complet solution :

var path = require('path');
var mime = require('mime');
var fs = require('fs');

app.get('/download', function(req, res) {

  var file = __dirname + '/upload-folder/dramaticpenguin.MOV';

  var filename = path.basename(file);
  var mimetype = mime.getType(file);

  res.setHeader('Content-disposition', 'attachment; filename=' + filename);
  res.setHeader('Content-type', mimetype);

  var filestream = fs.createReadStream(file);
  filestream.pipe(res);
});
Copier après la connexion

Cette solution comprend :

  • Extraction de fichiers et de noms de fichiers à l'aide de path.basename.
  • Détermination du type de contenu à l'aide de node-mime.
  • Diffusion de fichiers efficace avec fs.createReadStream.

En suivant ces techniques, vous pouvez télécharger efficacement des fichiers depuis votre serveur Node.js via Express, garantissant ainsi que les clients reçoivent et reconnaissent correctement le contenu téléchargé.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal