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

标签 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)。由于我无法通过重命名访问 req.body:function(fieldname, filename),我想知道我将如何实现这一目标?

最佳答案

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

关于node.js - Multer:如何在 req.body 参数后命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024339/

相关文章:

session - 快速 session 存储和 reapInterval

angularjs - 当尝试上传文件时,出现 404 not found 错误 Node js

javascript - 如何验证 multer s3 中的不同文件类型?

javascript - 使用 `NODE_MODULE_VERSION 70.` 而不是 NODE_MODULE_VERSION 48 重建 nbind

node.js - 是否可以在没有 Expressjs 的情况下使用 Passport.js?

regex - 我如何使用express在Nodejs中创建像API这样的谷歌地方

javascript - 在单独的 Controller 功能中使用 Multer 文件上传

node.js - Express.js 文件上传 : 60s timeouts and HTTP connection timeout errors

javascript - 使用 Sinon 模拟 require() 函数

node.js - 在另一个集合中保存新文档后,是否可以在回调函数中更新文档?