首页 > 解决方案 > 根据 api post 调用上传文件不同的目的地

问题描述

我是 Express js 的新手。我有两个上传按钮和两个单独的后调用来上传文件。我想根据 api 调用将文件上传到不同的位置。

第一篇 api 是 /app/upload1 第二篇 api 是 /app/upload2

我有带有磁盘存储的 multer 对象。

var storage = multer.diskStorage(
{
  destination: (req, file, cb) => {
        cb(null, FILE_PATH},
  filename: (req, file, cb) => {
    cb(null, file.originalname)
  }
}

目前,文件存储在全局路径中。

我想更改 multer 以便:使用 api 调用/app/upload1 - 文件应存储在 upload1 目录中和使用 api 调用/app/upload2 - 文件应存储在 upload2 目录中

有人可以在这里帮忙吗。

标签: node.jsangularjsexpress

解决方案


使用 options destination 设置要保存的目录:

var storage1 = multer.diskStorage(
{
  destination: (req, file, cb) => {
    cb(null, '/upload1'},
  filename: (req, file, cb) => {
    cb(null, file.originalname)
 }
}
var upload1 = multer({ storage: storage1 })
app.post('/app/upload1', upload1, function (req, res, next) {
    // todo
})
// var storage 2 = ...
// var upload2 = multer({ storage: storage2 })

参考链接

谢谢。


推荐阅读