Dateien von Express.js-Servern mit vollständigem Dateinamen und Erweiterung herunterladen
In Node.js ist das Bereitstellen einer Datei zum Herunterladen unkompliziert, aber Es kann etwas schwieriger sein, sicherzustellen, dass der Name und die Dateierweiterung korrekt sind.
Alt Ansatz:
Wenn Sie eine Datei-Download-Route mit Express.js schreiben, müssen Sie den Content-Disposition-Header explizit festlegen, um den Dateinamen und die Dateierweiterung bereitzustellen. Darüber hinaus möchten Sie möglicherweise zur besseren Handhabung die Header „Content-Length“ und „Content-Type“ einschließen:
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV'); res.write(fs.readFileSync(file, 'binary')); res.end(); });
Express.js-Helfer:
Express.js jetzt enthält eine Hilfsmethode namens Download, die das Herunterladen der Datei vereinfacht Prozess:
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.download(file); // Sets 'Content-Disposition' and sends the file });
Verbesserungen:
Für erweiterte Funktionen können Sie Bibliotheken von Drittanbietern wie Pfad und Mime verwenden, um den Dateinamen, die Dateierweiterung usw. automatisch zu ermitteln. und MIME-Typ:
const path = require('path'); const mime = require('mime'); app.get('/download', function(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); res.download(file); });
Dieser Ansatz stellt sicher, dass Ihre heruntergeladene Datei immer den richtigen Namen und die richtige Dateierweiterung hat, unabhängig von ihrem Speicherort auf der Server.
Das obige ist der detaillierte Inhalt vonWie lade ich Dateien mit korrekten Dateinamen und Erweiterungen von Express.js-Servern herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!