Node multer возвращает новое имя файла

Как заставить multer вернуть новое имя файла (superfilename) для загружаемого файла?

таким образом, когда он будет завершен, он также вернет новое имя файла?

сервер встал на сторону:

  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});
        });

1 ответ

  1. можно повторить имя файла назначения: req.file.filename

    Один из способов-передать объект upload в качестве промежуточного ПО для вашего маршрута upload, как показано ниже. Информация о файле Rest находится в объекте запроса. Вы можете обратиться к официальной документации для открытых api

    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'
            });
          }
      });