【问题标题】:Multer: how to name files after req.body parametersMulter:如何在 req.body 参数后命名文件
【发布时间】:2015-07-13 11:55:37
【问题描述】:

我正在尝试使用如下形式上传文件

<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,我想知道如何实现这一点?

【问题讨论】:

  • 文档还指出,在此函数中不允许访问 req.body,那么您知道如何实现吗?

标签: node.js express multer


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-12-16
    • 2017-05-01
    • 2017-01-14
    • 1970-01-01
    • 2019-10-06
    • 2017-01-28
    • 2016-05-22
    • 2021-08-21
    • 2019-02-06
    相关资源
    最近更新 更多