Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Muat Turun Fail dengan Nama Fail dan Sambungan yang Betul daripada Pelayan Express.js?
Muat turun Fail daripada Pelayan Express.js dengan Nama Fail dan Sambungan Lengkap
Dalam Node.js, menyampaikan fail untuk dimuat turun adalah mudah, tetapi memastikan ia mempunyai nama yang betul dan sambungan fail boleh menjadi lebih rumit.
Lama Pendekatan:
Apabila menulis laluan muat turun fail menggunakan Express.js, anda perlu menetapkan pengepala Pelupusan Kandungan secara eksplisit untuk memberikan nama fail dan sambungan fail. Selain itu, anda mungkin mahu memasukkan pengepala Kandungan Panjang dan Jenis Kandungan untuk pengendalian yang lebih baik:
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV'); res.write(fs.readFileSync(file, 'binary')); res.end(); });
Pembantu Express.js:
Express.js sekarang termasuk kaedah pembantu yang dipanggil muat turun yang memudahkan muat turun fail proses:
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.download(file); // Sets 'Content-Disposition' and sends the file });
Penambahan:
Untuk kefungsian yang lebih maju, anda boleh menggunakan perpustakaan pihak ketiga seperti laluan dan mime untuk menentukan nama fail, sambungan fail, dan jenis mime:
const path = require('path'); const mime = require('mime'); app.get('/download', function(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); res.download(file); });
Pendekatan ini memastikan bahawa fail yang anda muat turun sentiasa mempunyai nama dan sambungan fail yang betul, tanpa mengira lokasinya pada pelayan.
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail dengan Nama Fail dan Sambungan yang Betul daripada Pelayan Express.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!