【问题标题】:NodeJS multer filename for fields字段的NodeJS multer文件名
【发布时间】:2021-05-18 22:14:14
【问题描述】:

我是 nodeJS 初学者。如何获取 multer 存储字段的文件名?

控制器:

exports.createTruckDocs = (req, res, next) => {
  console.log("tu");
  Truck.findOneAndUpdate({ _id: req.body.truckId}, {$set: {TLic: /*issue*/}}).then(createdDocs => {
    res.status(201).json(createdDocs);
  })
};

中间件:

module.exports = multer({ storage: storage }).fields([
  { name: "TLIC"},
  { name: "LIC" },
  { name: "CMRLIC" }
]);

提前致谢!

【问题讨论】:

  • 你想达到什么目的?从请求中获取文件名并保存?或者您遇到任何错误?
  • Tnx @ApoorvaChikara。我想存储文件名。我在 multer 文档中找到了正确的语法,所以如果有人需要从 multer 字段中获取文件名,它是:req.files['field name'][0].filename

标签: node.js express multer


【解决方案1】:

所以,这就是您应该使用 multer 保存文件的方式。我不确定哪些步骤令人困惑,但您应该这样做:

const multer = require("multer");
const storage = multer.diskStorage({   
   destination: function(req, file, cb) { 
      cb(null, './uploads');    // you can name the destination make sure it exists
   }, 
   filename: function (req, file, cb) { 
      cb(null , file.originalname);   
   }
});

// to save single files
//const upload = multer({ storage: storage }).single('fieldName')

// to save multiple files, you can also set limit
const upload = multer({ storage: storage }).array('fieldName')
app.post("/upload_files", upload.array("fieldName"), uploadFiles);

const uploadFiles = (req, res) => {
    console.log(req.body);
    console.log(req.files);
    res.json({ message: "Successfully uploaded files" });
}

您可以查看here了解更多详情。

【讨论】:

  • req.files['field name'][0].filename - 这就是我需要的
  • 很高兴看到你找到了你需要的东西!如果此答案对您有任何帮助,您可以接受并投票。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2019-02-06
  • 2019-04-28
  • 1970-01-01
  • 2018-06-18
  • 1970-01-01
相关资源
最近更新 更多