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

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

Linda Hamilton
Freigeben: 2024-11-27 19:26:11
Original
561 Leute haben es durchsucht

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

Herunterladen von Dateien vom Node.js-Server mit Express

Problem:
Wie lade ich Dateien von einer auf dem Server gespeicherten Datei herunter? Eine Datei auf einen lokalen Computer herunterladen, indem auf eine Seite auf dem Node.js-Server zugegriffen wird?

Lösung:

Die Verwendung der von Express.js bereitgestellten Hilfsfunktionen kann diesen Prozess vereinfachen:

app.get('/download', function(req, res){
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Set disposition and send it.
});
Nach dem Login kopieren

Alte Lösung:

Damit der Browser den Dateinamen erkennt, müssen Sie ein anderes HTTP verwenden Header, um weitere Informationen anzugeben:

res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
Nach dem Login kopieren

Sie können auch MIME-Typen senden, zum Beispiel:

res.setHeader('Content-type', 'video/quicktime');
Nach dem Login kopieren

Das Folgende ist ein detaillierterer Beispielcode:

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

Bitte beachten Sie, dass dieser Beispielcode einen Stream zum Lesen der Datei verwendet, was die bevorzugte asynchrone Methode in Node.js ist.

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien mit Express.js 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