Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Muat Turun Fail dari Pelayan NodeJS Menggunakan 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`); });
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.
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); });
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');
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!