Heim >Web-Frontend >js-Tutorial >Wie lade ich mit Express Dateien von einem Node.js-Server herunter?

Wie lade ich mit Express Dateien von einem Node.js-Server herunter?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 21:25:15787Durchsuche

How Do I Download Files from a Node.js Server Using Express?

Dateien von einem Node.js-Server mit Express herunterladen

Das Express-Framework von Node.js bietet eine bequeme Möglichkeit, Dateien von einem Server auf einen Client herunterzuladen. Um dies zu erleichtern, befolgen Sie diese Schritte:

Header festlegen

Beim Senden einer Datei ist es wichtig, die richtigen HTTP-Header festzulegen, um dem Client wichtige Informationen wie Dateinamen und -typ bereitzustellen.

  • Content-disposition: Setzen Sie diesen Header auf „attachment; Dateiname=' um den Dateinamen anzugeben, wie er vom Client angezeigt wird.
  • Inhaltstyp: Geben Sie den Typ der heruntergeladenen Datei an, z. B. „Video/Quicktime“.

Asynchrones Datei-Streaming

Um die Leistung zu verbessern, verwenden Sie Dateistreams zur Datenübertragung, anstatt die gesamte Datei synchron zu lesen. Dieser Ansatz minimiert potenzielle Verzögerungen oder Speicherprobleme.

Verbesserte Lösung

Express enthält jetzt eine integrierte Funktion zum Herunterladen von Dateien:

app.get('/download', function(req, res) {
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Sets the appropriate headers and streams the file.
});

Legacy-Lösung

Vor der integrierten Download-Funktion von Express bietet der folgende Code einen umfassenderen Datei-Download Lösung:

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);
});

Diese Lösung umfasst:

  • Datei- und Dateinamenextraktion mit path.basename.
  • Bestimmung des Inhaltstyps mit Node-Mime.
  • Effizientes Datei-Streaming mit fs.createReadStream.

Durch die Befolgung dieser Techniken können Sie kann Dateien effektiv über Express von Ihrem Node.js-Server herunterladen und so sicherstellen, dass Clients den heruntergeladenen Inhalt korrekt empfangen und erkennen.

Das obige ist der detaillierte Inhalt vonWie lade ich mit Express Dateien von einem Node.js-Server herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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