Aussi loin que votre navigateur est concerné, le nom du fichier est simplement "télécharger", vous devez donc vous donner plus d'informations en utilisant un autre en-tête HTTP.
res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
Vous pouvez également envoyer un mime-type comme ceci:
res.setHeader('Content-type', 'video/quicktime');
Si vous voulez quelque chose de plus approfondi, ici ya aller.
var path = require('path');
var mime = require('mime');
app.get('/download', function(req, res){
var file = __dirname + '/upload-folder/dramaticpenguin.MOV';
var filename = path.basename(file);
var mimetype = mime.lookup(file);
res.setHeader('Content-disposition', 'attachment; filename=' + filename);
res.setHeader('Content-type', mimetype);
var filestream = fs.createReadStream(file);
filestream.pipe(res);
});
Vous pouvez définir la valeur d'en-tête que vous voulez. Dans ce cas, je suis à l'aide d'un mime-type de la bibliothèque, https://github.com/bentomas/node-mime, afin de vérifier le type mime du fichier.
Une autre chose importante à noter ici est que j'ai changé votre code pour utiliser un readStream. C'est une bien meilleure façon de faire les choses parce que l'utilisation de toute méthode avec "Sync" dans le nom est mal vu car nœud est destiné à être asynchrone.
Mise à jour
Express a un helper pour cela, pour rendre la vie plus facile.
app.get('/download', function(req, res){
var file = __dirname + '/upload-folder/dramaticpenguin.MOV';
res.download(file); // Set disposition and send it.
});