Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Muat Turun Fail daripada Pelayan Node.js Menggunakan Express.js?

Bagaimana untuk Muat Turun Fail daripada Pelayan Node.js Menggunakan Express.js?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 19:26:11614semak imbas

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

Memuat turun Fail daripada Pelayan Node.js Menggunakan Express

Masalah:
Cara memuat turun fail daripada fail yang disimpan dalam pelayan, Memuat turun fail ke mesin tempatan dengan mengakses halaman dalam pelayan Node.js?

Penyelesaian:

Menggunakan fungsi pembantu yang disediakan oleh Express.js boleh memudahkan proses ini:

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

Penyelesaian lama :

Untuk membolehkan penyemak imbas mengenali nama fail, anda perlu menggunakan HTTP lain pengepala untuk menentukan maklumat lanjut:

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

Anda juga boleh menghantar jenis MIME, contohnya:

res.setHeader('Content-type', 'video/quicktime');

Berikut ialah kod sampel yang lebih terperinci:

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

Sila Ambil perhatian bahawa kod contoh ini menggunakan strim untuk membaca fail, yang merupakan kaedah tak segerak pilihan dalam Node.js.

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail daripada Pelayan Node.js Menggunakan Express.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn