Javascript Multer:在destination属性中设置不同的目的地
我有一个案例,我需要在不同的目录中存储图像。因此,我已将骡子设置为Javascript Multer:在destination属性中设置不同的目的地,javascript,node.js,npm,multer,Javascript,Node.js,Npm,Multer,我有一个案例,我需要在不同的目录中存储图像。因此,我已将骡子设置为 app.use(multer({ dest: path.join(__dirname, '`public/assets/img/profile`'), rename: function (fieldname, filename, req, res) { if(req.session.user) return req.session.user.id; else if(req.session.doct
app.use(multer({
dest: path.join(__dirname, '`public/assets/img/profile`'),
rename: function (fieldname, filename, req, res) {
if(req.session.user) return req.session.user.id;
else if(req.session.doctor) return req.session.doctor.id;
}
}));
但是,我需要更多的目的地来存储图像
public/assets/img/picture1
我见过类似的问题,但我一个都不懂。
任何帮助都将是巨大的。您的示例来自非常旧的multer版本。我强烈建议您使用最新版本(出于安全原因) 如果您确定需要旧版本,则只需将以下选项添加到multer中:
app.use(multer({
//...
changeDest: function(dest, req, res) {
return dest + '/user1';
}
//...
}));
您将在文档中获得更多详细信息(链接到旧版本)
最新版本的multer工作原理有点不同。这将是一个非常重要的主题,详细介绍如何使用multer的新版本。您可以很容易地在stackoverflow中找到答案,也可以从文档的实际版本中找到答案
我只写如何更改目标目录(来自文档的示例):
您如何确定将图像存储在哪个目录中?谢谢,我将尝试实现它并查看。您能告诉我multer如何处理回调吗?我对multer中的筛选器感到非常失望,我无法实现这一点。我尝试了其他一些方法,但感觉不太好so@santhosh也许你可以发行新的(你可以在此评论中添加指向该问题的链接,然后我会尽力帮助你)。这是因为我有一些问题。这在评论中可读性较差。在新主题中,你可以编写,你使用的multer上的哪个版本(旧的或新的api),编写一些代码,这会给你带来麻烦。你想要实现什么,你得到什么。
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage })
app.post('/profile', upload.single('picture'), function (req, res, next) {
// req.file is the `picture` file
// req.body will hold the text fields, if there were any
})