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

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

Linda Hamilton
Libérer: 2024-11-27 19:26:11
original
559 Les gens l'ont consulté

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

Téléchargement de fichiers depuis le serveur Node.js à l'aide d'Express

Problème :
Comment télécharger des fichiers à partir d'un fichier stocké sur le serveur, Télécharger un fichier sur une machine locale en accédant à une page du serveur Node.js ?

Solution :

L'utilisation des fonctions d'assistance fournies par Express.js peut simplifier ce processus :

app.get('/download', function(req, res){
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Set disposition and send it.
});
Copier après la connexion

Ancienne solution :

Pour que le navigateur reconnaisse le nom du fichier, vous devez utiliser un autre HTTP en-tête pour spécifier plus d'informations :

res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
Copier après la connexion

Vous pouvez également envoyer des types MIME, par exemple :

res.setHeader('Content-type', 'video/quicktime');
Copier après la connexion

Ce qui suit est un exemple de code plus détaillé :

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

Veuillez noter que cet exemple de code utilise un flux pour lire le fichier, qui est la méthode asynchrone préférée dans Node.js.

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