Express利用multer中间件实现文件上传并查看
warning:
这篇文章距离上次修改已过285天,其中的内容可能已经有所变动。
const express = require('express');
const multer = require('multer');
const path = require('path');
const app = express();
// 设置存储配置
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/') // 确保这个文件夹已经存在
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
// 创建 multer 实例,并指定存储方式
const upload = multer({ storage: storage });
// 中间件函数,用于解析 multipart/form-data 类型的数据
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
// 文件上传接口
app.post('/upload', upload.single('myFile'), (req, res) => {
const file = req.file;
if (!file) {
return res.status(400).send('No file uploaded.');
}
res.send('File uploaded successfully.');
});
// 文件列表接口
app.get('/files', (req, res) => {
const files = [];
// 读取 'uploads' 文件夹下的文件列表
fs.readdirSync('uploads/').forEach(file => {
files.push(file);
});
res.send(files);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
在这个示例中,我们创建了一个简单的 Express 应用,使用 multer 处理文件上传。我们定义了 /upload
路径来上传文件,并定义了 /files
路径来获取上传文件的列表。注意,实际应用中你需要处理更多的错误和安全性检查。
评论已关闭