Multer:如何在req.body参数之后命名文件

时间:2015-05-04 07:02:21

标签: node.js express multer

我正在尝试使用下面的表单上传文件

<input type="file" name="collateral" />
<input type="hidden" name="id" value="ABCDEFG" />
<input type="submit" value="Upload Image" name="submit">

我想重命名为id输入(ABCDEFG)中的文件名。由于我无法通过rename:function(fieldname,filename)访问req.body,我想知道如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

尝试将文件最后放在POST请求有效负载中。

然后您应该可以通过此回调访问req.body

var multer  = require('multer');

var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './public/uploads/')
    },
    filename: function (req, file, cb) {
        cb(null, file.fieldname + '-' + Date.now())
        // access req.body and rename file 
    }
});

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