通过表单从不同的字段上传多个文件,并使用Express Multer存储到MongoDB数据库中的步骤如下:
npm install multer mongodb
const express = require('express');
const multer = require('multer');
const MongoClient = require('mongodb').MongoClient;
const ObjectId = require('mongodb').ObjectId;
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 });
const url = 'mongodb://localhost:27017'; // MongoDB连接URL,可以根据需求修改
const dbName = 'mydatabase'; // 数据库名称,可以根据需求修改
const collectionName = 'files'; // 集合名称,可以根据需求修改
MongoClient.connect(url, function(err, client) {
if (err) throw err;
const db = client.db(dbName);
const collection = db.collection(collectionName);
// 在这里进行文件上传和存储到数据库的操作
});
const router = express.Router();
router.post('/upload', upload.array('files'), function(req, res) {
const files = req.files;
// 将文件信息存储到数据库中
collection.insertMany(files, function(err, result) {
if (err) throw err;
res.send('文件上传成功!');
});
});
module.exports = router;
const uploadRouter = require('./routes/upload');
app.use('/api', uploadRouter);
现在,你可以通过向/api/upload
发送POST请求来上传多个文件。在请求的表单中,使用<input type="file" name="files" multiple>
来选择多个文件。
这个问答内容涉及到的名词是:
腾讯云相关产品和产品介绍链接地址:
云+社区技术沙龙[第17期]
第四期Techo TVP开发者峰会
DB TALK 技术分享会
DB・洞见
云+未来峰会
云+社区技术沙龙[第14期]
DB TALK 技术分享会
Techo Day 第三期
Hello Serverless 来了
领取专属 10元无门槛券
手把手带您无忧上云