Multer:在目的地设置不同的目的地属性
Multer : Setting different destinations in the destination Property
我有一个案例需要将图像存储在不同的目录中。所以我将 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.doctor) return req.session.doctor.id;
}
}));
但是我需要更多目的地来存储图像。
public/assets/img/picture1
我看到过类似的问题,但我一个都看不懂。
任何帮助都会很棒。
您的示例来自相当旧的 multer 版本。我强烈建议您使用最新版本(出于安全原因)。
如果您确定需要旧版本,那么只需添加到您的多个选项:
app.use(multer({
//...
changeDest: function(dest, req, res) {
return dest + '/user1';
}
//...
}));
您将在文档中获得更多详细信息(link 到旧版本)link
最新版本的 multer 工作方式略有不同。详细写如何使用新版本的 multer 将是一个很大的话题。您很容易在 Whosebug 答案或文档的实际版本中找到 link
我只写如何更改目标目录(文档中的示例):
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
})
我有一个案例需要将图像存储在不同的目录中。所以我将 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.doctor) return req.session.doctor.id;
}
}));
但是我需要更多目的地来存储图像。
public/assets/img/picture1
我看到过类似的问题,但我一个都看不懂。 任何帮助都会很棒。
您的示例来自相当旧的 multer 版本。我强烈建议您使用最新版本(出于安全原因)。
如果您确定需要旧版本,那么只需添加到您的多个选项:
app.use(multer({
//...
changeDest: function(dest, req, res) {
return dest + '/user1';
}
//...
}));
您将在文档中获得更多详细信息(link 到旧版本)link
最新版本的 multer 工作方式略有不同。详细写如何使用新版本的 multer 将是一个很大的话题。您很容易在 Whosebug 答案或文档的实际版本中找到 link
我只写如何更改目标目录(文档中的示例):
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
})