gpt4 book ai didi

html - 保存多图像 Multer

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:11 26 4
gpt4 key购买 nike

我在使用 Multer 保存多个图像时遇到问题

    <form action="/api/imagesSection" method="post" enctype="multipart/form-data">
<input type="file" name="uploadedImages" value="uploading_img" multiple>
<input type="submit" value="uploading_img">
</form>

路线如下:

router.post('/imagesSection', upload.array('uploadedImages', 10), function(req, res) {
let timeInMs = Date.now();

for(var i = 0; i < req.files.length; i++){
let imageS = new ImageS();
let file = req.files[i].destination + '/' + timeInMs +req.files[i].originalname ;
imageS.imageUrl = req.files[i].destination + '/' + timeInMs +req.files[i].originalname ;
imageS.title = 'req.body.title';
imageS.description = 'req.body.description';

fs.rename(req.files[i].path, file, function(err) {
if (err) {
console.log(err);
res.send(500);
} else {
imageS.save();
// res.redirect(req.get('referer'));
console.log(imageS);
}

});
}
});

正如你所看到的,我在每个循环中调用 `save() One new ImageS();只需保存第一个 IMG 文件即可。有什么想法吗?

最佳答案

以下代码异步工作,这就是为什么您只保存 1 个图像。

         fs.rename(req.files[i].path, file, function(err) {
if (err) {
console.log(err);
res.send(500);
} else {
imageS.save();
// res.redirect(req.get('referer'));
console.log(imageS);
} });

不要使用 for 循环,而是尝试使用 forEach(),就像我在代码中所做的那样。

var images = [];
req.files.forEach(function(value, index){
console.log(req.files.length);
var tempPath = value.path;
var targetPath = path.resolve('public/img/flat_images/'+flat._id+index+'.'+value.originalname.split('.').slice(-1).pop());
images.push('/img/flat_images/'+flat._id+index+'.'+value.originalname.split('.').slice(-1).pop());
console.log(images);
fs.rename(tempPath,targetPath,function(err){
if(err) return res.status(400).end();
});
});

flat.images = images;
flat.save(function(err){
if(err) return res.status(400).end();
res.send(flat);
});

希望,这会有所帮助。

关于html - 保存多图像 Multer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com