Heim >Web-Frontend >js-Tutorial >Wie kann ich mit ExpressJS Dateien von einem NodeJS-Server herunterladen?
Herunterladen von Dateien vom NodeJS-Server mit Express
Wenn Sie auf eine Webseite auf einem NodeJS-Server zugreifen, müssen Sie möglicherweise darauf gespeicherte Dateien herunterladen Der Server. Dieser Artikel führt Sie durch den Prozess des Herunterladens von Dateien mit dem ExpressJS-Framework.
ExpressJS-Dateidownload
Um einen Dateidownload zu starten, verwenden Sie res.download() von ExpressJS bereitgestellte Methode. Diese Methode legt automatisch die erforderlichen HTTP-Header für den Dateianhang und die Disposition fest.
Zur Demonstration:
app.get('/download', (req, res) => { res.download(`${__dirname}/upload-folder/dramaticpenguin.MOV`); });
Einschließlich Dateiname und -typ
Von Standardmäßig werden heruntergeladene Dateien mit „Download“ bezeichnet. Um einen benutzerdefinierten Dateinamen und -typ anzugeben, müssen Sie zusätzliche HTTP-Header festlegen.
Umfassende Implementierung
Hier ist eine robustere Implementierung, die zur Bestimmung die Mime-Bibliothek verwendet Der MIME-Typ der Datei dynamisch:
const path = require('path'); const mime = require('mime'); const fs = require('fs'); app.get('/download', (req, res) => { const file = __dirname + '/upload-folder/dramaticpenguin.MOV'; const filename = path.basename(file); const mimetype = mime.getType(file); res.setHeader('Content-disposition', `attachment; filename=${filename}`); res.setHeader('Content-type', mimetype); const filestream = fs.createReadStream(file); filestream.pipe(res); });
Verwendet res.write()
Wenn Sie den res.write()-Ansatz bevorzugen, legen Sie zuerst die Header „Content-Disposition“ und „Content-Length“ fest:
res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV'); res.setHeader('Content-Length', file.length); res.write(file, 'binary');
Denken Sie an die konsequente Verwendung ein readStream für die Dateiübertragung anstelle synchroner Methoden für optimale Leistung.
Das obige ist der detaillierte Inhalt vonWie kann ich mit ExpressJS Dateien von einem NodeJS-Server herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!