Problem:
Wie lade ich Dateien von einer auf dem Server gespeicherten Datei herunter? Eine Datei auf einen lokalen Computer herunterladen, indem auf eine Seite auf dem Node.js-Server zugegriffen wird?
Lösung:
Die Verwendung der von Express.js bereitgestellten Hilfsfunktionen kann diesen Prozess vereinfachen:
app.get('/download', function(req, res){ const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.download(file); // Set disposition and send it. });
Alte Lösung:
Damit der Browser den Dateinamen erkennt, müssen Sie ein anderes HTTP verwenden Header, um weitere Informationen anzugeben:
res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
Sie können auch MIME-Typen senden, zum Beispiel:
res.setHeader('Content-type', 'video/quicktime');
Das Folgende ist ein detaillierterer Beispielcode:
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); });
Bitte beachten Sie, dass dieser Beispielcode einen Stream zum Lesen der Datei verwendet, was die bevorzugte asynchrone Methode in Node.js ist.
Das obige ist der detaillierte Inhalt vonWie lade ich Dateien mit Express.js von einem Node.js-Server herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!