3 votes

Télécharger plusieurs fichiers depuis un serveur NodeJS

Je tente de prendre en charge le téléchargement de plusieurs fichiers depuis mon serveur Node.js vers le client. Avec la logique ci-dessous mise en œuvre dans mon serveur NodeJS, je peux prendre en charge l'envoi d'un seul fichier au client.

res.download('group_documents/sample1.pdf','sample1.pdf', function(err){
  if (err) {
    console.log(err);
  } else {
    // décrémenter un crédit de téléchargement, etc.
  }
});

Comment puis-je réécrire la logique serveur ci-dessus pour prendre en charge le téléchargement de plusieurs fichiers en utilisant une seule demande du client (navigateur ou requête curl) ?

8voto

atul Points 411

Sur un navigateur web, vous ne pouvez pas télécharger plusieurs fichiers simultanément. Mais vous pouvez télécharger un fichier archivé de tous les fichiers requis. En utilisant le paquet npm express-zip, vous pouvez le faire facilement.

https://github.com/thrackle/express-zip

Installez express-zip.

npm install express-zip

Utilisez le code suivant :

res.zip(files);

Les fichiers sont un tableau d'objets. Chaque objet devrait être :

{ path : 'chemin/vers/le/fichier', name : 'nomDuFichier'}

0voto

paul Points 9867

Si vos clients cibles sont des navigateurs web, alors vous ne pouvez pas le faire, car le protocole http ne permet pas le téléchargement de plusieurs fichiers pour une seule requête.

Si vous avez vraiment besoin de le faire, alors vous devriez soit écrire une application client personnalisée, ou (plus simplement) compresser les fichiers dans une archive avant de les transmettre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X