我正在尝试使用Multer上传多张图片。除了只有一个文件正在上传(最后选择的文件)外,所有工作都与预期相同。
HTML
<form class='new-project' action='/projects' method='POST' enctype="multipart/form-data">
<label for='file'>Select your image:</label>
<input type='file' multiple='multiple' accept='image/*' name='uploadedImages' id='file' />
<span class='hint'>Supported files: jpg, jpeg, png.</span>
<button type='submit'>upload</button>
</form>
JS
//Define where project photos will be stored
var storage = multer.diskStorage({
destination: function (request, file, callback) {
callback(null, './public/uploads');
},
filename: function (request, file, callback) {
console.log(file);
callback(null, file.originalname)
}
});
// Function to upload project images
var upload = multer({storage: storage}).any('uploadedImages');
// add new photos to the DB
app.post('/projects', function(req, res){
upload(req, res, function(err){
if(err){
console.log(err);
return;
}
console.log(req.files);
res.end('Your files uploaded.');
console.log('Yep yep!');
});
});
我觉得我漏掉了一些明显的东西...
编辑
代码我试过以下Syed的帮助:
HTML
<label for='file'>Select your image:</label>
<input type='file' accept='image/*' name='uploadedImages' multiple/>
<span class='hint'>Supported files: jpg, jpeg, png.</span>
<input type="submit" value="uploading_img">
JS
multer = require('multer'),
var upload = multer();
app.post('/projects', upload.array('uploadedImages', 10), function(req, res, err) {
if (err) {
console.log('error');
console.log(err);
}
var file = req.files;
res.end();
console.log(req.files);
});
3条答案
按热度按时间njthzxwz1#
使用Multer上传多个文件
NodeJs代码
设置需要文件和存储
设置上传文件限制或验证
创建上传的主路由
监听端口
HTML代码
JavaScript代码
6yt4nkrj2#
下面是这个例子:
访问以了解有关Multer的更多信息。
b1uwtaje3#
我的猜测是,对于每个你想上传的文件,你重新点击:
如果这样做,则只会上载最后选择的文件,因为您会覆盖以前选择的文件。
要上传多个文件,您必须在文件选取器中一次选择所有文件。