我试图将2个文件上传到我的节点js服务器。我使用multer从请求中接收数据。这是我的终点:
app.post('/testFile', imageUpload.fields([{name:'image',maxCount:1},{name:'image2',maxcount:1}]), function(req, res, next){
res.sendStatus(201);
});
这就是我设置嫁妆的地方:
var somevariable= multer({
storage: multer.diskStorage({
destination: (req, file, callback) => {
var x= req.body.x;
var y= req.body.y;
var path = `./resources/pics/${x}/${y}`;
fs.mkdirsSync(path);
callback(null, path);
},
filename: (req, file, callback) => {
callback(null, file.originalname);
}
})
});
我有一些奇怪的行为。如果我处理第一张图片,我会收到' undefined' x和y参数。但是如果我的进程到达第二个图像,我可以在x和y变量中获得传递的值。有人可以向我解释为什么会这样吗?
答案 0 :(得分:1)
请像这样使用muster
。
var storage = multer.diskStorage({
destination: 'destinationPath'
});
var upload = multer({
storage: storage
}).any();
upload(req, res, function(err) {
if (err) {
console.log(err);
return res.end('Error');
} else {
// your code goes here
}
}