node multer return 新文件名

node multer return new file name

如何使 multer return 成为上传文件的新文件名 ( superfilename )?

所以完成后,它也会 return 新文件名?

服务器端:

  var storage = multer.diskStorage({ //multers disk storage settings
    destination: function (req, file, cb) {
      cb(null, '/opt/mean/public/uploads/')
    },
    filename: function (req, file, cb) {
      var datetimestamp = Date.now();
      var superfilename = file.fieldname + '-' + datetimestamp + '.' + file.originalname.split('.')[file.originalname.split('.').length -1];
      cb(null, superfilename)
    }
  });
  var upload = multer({ //multer settings
    storage: storage
  }).single('file');



  upload(req,res,function(err){

          if(err){
            res.json({error_code:1,err_desc:err});
            return;
          }
          res.json({error_code:0,err_desc:null});
        });

您可以重新运行目标文件名:req.file.filename

一种方法是将 upload 对象作为上传路径的中间件传递,如下所示。其余文件相关信息将在您的请求对象中。暴露的api的

可以参考official documentation
app.post('/uploadFile',upload,(req,res)=>{

      if(req.file !==  undefined){

        // once uploaded save the user data along with uploaded photo path to the database.
        res.json({
           'fileName':req.file.originalname,
           'destination':req.file.filename,
           'userName':req.body.userName,
           'phoneNumer':req.body.phoneNumber
        });
      }else{
        res.json({
          'message':'Unable to Upload file'
        });
      }
  });