我的应用程序可以上传单个图像。但是我想在我的MongoDB中上传多个图像,我找不到解决方案。...
我尝试更改自己的html帖子标记,考虑上传。但是我不知道如何在路由过程中放入数组。
这是我的html标记。
<form action="/upload" method="post" enctype="multipart/form-data">
<!-- image preview -->
<div>
<span>
<h3>Upload your images</h3>
<input type="file" id="files" name="photo" value="files" multiple />
<input type="text" name="caption" value="">
</span>
</div>
<div>
<input type="submit" value="submit">
</div>
</form>
,我试图更改此设置。将标签的名称照片输入到照片[]。
<form action="/upload" method="post" enctype="multipart/form-data">
<!-- image preview -->
<div>
<span>
<h3>Upload your images</h3>
<input type="file" id="files" name="photo[]" value="files" multiple />
<input type="text" name="caption" value="">
</span>
</div>
<div>
<input type="submit" value="submit">
</div>
</form>
这是我的multer上传代码。
const upload = multer({
storage: storageEngine,
limits: { fileSize:200000 },
fileFilter: function(req, file, callback){
validateFile(file, callback);
}
}).single('photo');
,我试图更改此设置。 multer.array('photo []')
但是它永远都行不通。这是路线代码
router.post('/upload', function(req, res) {
console.log(req.body);
upload(req, res,(error) => {
//console.log(req.file.length());
console.log(req.body);
console.log(req.file);
if(error){
res.redirect('/?msg=3');
}else{
if(req.file == undefined){
res.redirect('/?msg=2');
}else{
/**
* Create new record in mongoDB
*/
var fullPath = "files/"+req.file.filename;
var document = {
path: fullPath,
caption: req.body.caption
};
var photo = new Photo(document);
photo.save(function(error){
if(error){
throw error;
}
res.redirect('/?msg=1');
});
}
}
});
});
这是猫鼬模式。
var photoSchema = new Schema({
path: { type: String },
caption: { type: String }
});
感谢您的帮助!