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
Freigeben: 2024-12-04 21:25:15
Original
785 Leute haben es durchsucht

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

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage