【问题标题】:send form with upload file in nodejs在nodejs中发送带有上传文件的表单
【发布时间】:2016-09-20 15:34:15
【问题描述】:

我使用 busbody 在 nodejs 中上传文件 我可以上传文件,但我无法在 bodyparser 中收到短信 我的前端代码是:

<script>
    $("input[type='button']").click(function(){
    var files = $("input[type='file']").get();

    var formData = new FormData();
    var text  = "xxxxx";
    var url  = "fileUpload";
    if (files.length > 0){
      for (var i = 0; i < files.length; i++) {
        var input = $("input[type='file']").get(i).files;
        var file = input;
        if(file.length>0){
          console.log( file[0].name);
          formData.append('userpic',file[0], file[0].name);
        }
      }
      formData.append('text',text);
      $.ajax({
        type: "post",
        url: url,
        processData: false,
        contentType: false,
        data: formData, // serializes the form's elements.
      });
    }
  });
</script>

server.js

router.post('/fileUpload', function(req, res) {
console.log(req.body.text);
// req.pipe(req.busboy);
req.busboy.on('file', function(fieldname, file, filename) {
    console.log('ok2');
    var fstream = fs.createWriteStream('./public/images/' + filename);
    file.pipe(fstream);
    fstream.on('close', function () {

    });
});
res.send('upload succeeded!');
});

这行代码console.log(req.body.text); 只需返回 {}

【问题讨论】:

  • 你能发布你的 app.js 文件代码吗?
  • @abdulbarik var bodyParser = require('body-parser'); var busboy = require('connect-busboy'); app.use(busboy()); app.use(bodyParser());我在 app.js 中使用 middelware

标签: javascript node.js ajaxform jquery-upload-file-plugin


【解决方案1】:

尝试使用正文解析器: npm install --save body-parser 然后选择中间件: var bodyParser = require('body-parser'); app.use(bodyParser.json());

或者直接使用中间件: var bodyParser = require('body-parser'); router.post('/fileUpload', bodyParser.json(), function(req, res) {....});

还可以尝试使用console.log(req.body) 查看请求的格式。

【讨论】:

  • 我在 app.js 中使用 middelware
【解决方案2】:

我认为这是因为这行:file.pipe(fstream);,这应该是fstream.pipe(file)

正如 Steven 所说,multer 是一个不错的选择。

【讨论】:

    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2011-02-26
    • 2015-05-22
    相关资源
    最近更新 更多