在Node.js中實(shí)現(xiàn)文件上傳和下載可以使用multer
中間件來(lái)處理文件上傳,使用fs
模塊來(lái)處理文件下載。
const express = require('express');
const multer = require('multer');
const app = express();
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/') // 保存文件的目錄
},
filename: function (req, file, cb) {
cb(null, file.originalname) // 保存文件的原始名稱
}
});
const upload = multer({ storage: storage });
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File uploaded successfully');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
const express = require('express');
const fs = require('fs');
const app = express();
app.get('/download', (req, res) => {
const file = 'path/to/file.pdf'; // 要下載的文件路徑
fs.readFile(file, (err, data) => {
if (err) {
res.status(404).send('File not found');
} else {
res.setHeader('Content-Disposition', 'attachment; filename=' + file);
res.setHeader('Content-Type', 'application/pdf');
res.send(data);
}
});
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
以上代碼演示了在Node.js中實(shí)現(xiàn)文件上傳和下載的方法,通過(guò)multer
中間件處理文件上傳,通過(guò)fs
模塊處理文件下載。在實(shí)際項(xiàng)目中,可以根據(jù)需求對(duì)文件上傳和下載的邏輯進(jìn)行更進(jìn)一步的處理。