在Node.js中实现文件上传和下载可以使用multer
中间件来处理文件上传,使用fs
模块来处理文件下载。
- 文件上传:
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中实现文件上传和下载的方法,通过multer
中间件处理文件上传,通过fs
模块处理文件下载。在实际项目中,可以根据需求对文件上传和下载的逻辑进行更进一步的处理。