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

Node.js Multer:如何在req.body参数后命名文件,node.js,express,multer,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:函数(fieldname,filename)访

我正试图上传一个带有如下表单的文件

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


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

尝试将文件放在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 });

文档中还指出,此函数中不允许访问req.body,因此您知道如何实现这一点吗?