Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Muat Turun Fail dari Pelayan NodeJS Menggunakan ExpressJS?

Bagaimanakah Saya Boleh Muat Turun Fail dari Pelayan NodeJS Menggunakan ExpressJS?

Patricia Arquette
Lepaskan: 2024-11-30 14:34:11
asal
530 orang telah melayarinya

How Can I Download Files from a NodeJS Server Using ExpressJS?

Memuat Turun Fail daripada Pelayan NodeJS Menggunakan Express

Apabila mengakses halaman web pada pelayan NodeJS, anda mungkin menghadapi keperluan untuk memuat turun fail yang disimpan pada pelayan. Artikel ini akan membimbing anda melalui proses memuat turun fail menggunakan rangka kerja ExpressJS.

Muat Turun Fail ExpressJS

Untuk memulakan muat turun fail, gunakan res.download() kaedah yang disediakan oleh ExpressJS. Kaedah ini secara automatik menetapkan pengepala HTTP yang diperlukan untuk lampiran dan pelupusan fail.

Untuk menunjukkan:

app.get('/download', (req, res) => {
  res.download(`${__dirname}/upload-folder/dramaticpenguin.MOV`);
});
Salin selepas log masuk

Termasuk Nama dan Jenis Fail

Oleh lalai, fail yang dimuat turun dinamakan "muat turun." Untuk menentukan nama dan jenis fail tersuai, anda perlu menetapkan pengepala HTTP tambahan.

  • Nama Fail: res.setHeader('Content-disposition', 'attachment; filename= dramaticpenguin.MOV')
  • Jenis Fail: res.setHeader('Content-type', 'video/quicktime')

Pelaksanaan Komprehensif

Berikut ialah pelaksanaan yang lebih mantap menggunakan perpustakaan mime untuk menentukan jenis mime fail secara dinamik:

const path = require('path');
const mime = require('mime');
const fs = require('fs');

app.get('/download', (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);

  const filestream = fs.createReadStream(file);
  filestream.pipe(res);
});
Salin selepas log masuk

Menggunakan res.write()

Jika anda lebih suka pendekatan res.write(), tetapkan pengepala Content-Disposition dan Content-Length pertama:

res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
res.setHeader('Content-Length', file.length);
res.write(file, 'binary');
Salin selepas log masuk

Ingat untuk menggunakan readStream secara konsisten untuk penghantaran fail dan bukannya kaedah segerak untuk prestasi optimum.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun Fail dari Pelayan NodeJS Menggunakan ExpressJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan