【问题标题】:Post file and data in same request to node server将同一请求中的文件和数据发布到节点服务器
【发布时间】:2016-09-11 02:55:21
【问题描述】:

我有一个带有两个输入的 HTML 表单 - 1 个文本和 1 个文件。

<form method="post" action="http://localhost:3000/users">
            <input type="text" name="username" />
            <input type="file" name="file" />
            <button type="submit">Submit</button>
        </form>

现在我将它发布到节点服务器-

router.post('/users', function(req, res, next){
    req.pipe(req.busboy);
    req.busboy.on('file', function(fieldname, file, filename){
        var fstream=fs.createWriteStream('./uploads/'+filename);
        file.pipe(fstream);
        fstream.on('close', function(){
            var user = User({
                username: req.body.username,
            });
            user.save(function(err){
                if(err)
                    res.json({error: err});
                else
                    res.redirect('/');
            });
        });
    });
});

但我一次只能获取用户名或文件(当我以 HTML 形式使用 enctype="multipart/form-data" 时)。

有没有办法将两者保存在一个请求中。如果是那怎么办?

感谢任何帮助。

谢谢。

【问题讨论】:

    标签: node.js express forms http-post


    【解决方案1】:

    您只是在侦听文件字段。如果你想收到关于非文件字段的通知,那么你还需要添加一个'field' 事件监听器:

    req.busboy.on('field', function(key, val, keyTrunc, valTrunc) {
      console.log(key, val);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      相关资源
      最近更新 更多