Heim > Web-Frontend > js-Tutorial > Wie lade ich Dateien mit korrekten Dateinamen und Erweiterungen von Express.js-Servern herunter?

Wie lade ich Dateien mit korrekten Dateinamen und Erweiterungen von Express.js-Servern herunter?

DDD
Freigeben: 2024-12-02 11:53:11
Original
318 Leute haben es durchsucht

How to Download Files with Correct Filenames and Extensions from Express.js Servers?

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();
});
Nach dem Login kopieren

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
});
Nach dem Login kopieren

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);
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage