如何在节点js中的函数内使用multer文件上传

时间:2016-09-28 08:44:51

标签: node.js multer

var uuid = uuid.v1().toString();
var storage = multer.diskStorage({
  'destination' : function(req,file,cb){
    if(file.mimetype.toString() == 'image/jpeg'){
        cb(null,'uploads/pics/');
    }
    else if(file.mimetype.toString() == 'video/mp4'){
        cb(null,'uploads/videos/');
    }
    else if(file.mimetype.toString() == 'image/png'){
        cb(null,'uploads/thumbs/');
    }
    else{
        res.send('400');
    }

  },
  'filename' : function(req,file,cb){

    if(file.mimetype.toString() == 'image/jpeg'){
        cb(null,uuid + '.jpg');
    }
    else if(file.mimetype.toString() == 'video/mp4'){
        cb(null,uuid + '.mp4');
    }
    else if(file.mimetype.toString() == 'image/png'){
        cb(null,uuid + '.png');
    }
    else{
        res.send('400');
    }
  }
});

var upload = multer({ storage : storage });

UserService.prototype.uploadMultimedia = function(req, res) {
//call upload ???
}

这里我配置了multer,现在我想在上传媒体功能中调用上传。所以有什么建议吗?我尝试了以下方式,但没有取得成功:

upload.any(); 

顺便提一下,UserService在代码中定义。现在我只想知道如何在函数' uploadMultimedia'

中调用上传

1 个答案:

答案 0 :(得分:-1)

在路线文件或app.js

中将其公开为路线
app.post('/uploadMultimedia',upload.single('file'),UserService.prototype.uploadMultimedia);

然后,您可以轻松访问功能中的req.file