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. });
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');
Vous pouvez également envoyer des types MIME, par exemple :
res.setHeader('Content-type', 'video/quicktime');
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); });
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!