【问题标题】:Posting a file from one node service to a node webservice将文件从一个节点服务发布到节点 Web 服务
【发布时间】:2013-11-23 02:55:37
【问题描述】:

我有以下客户服务:

var request = require('request');
var fs = require('fs');

var file = "c:\\log.txt";
var url = "http://localhost:8080/upload";

fs.createReadStream(file).pipe(request.post(url));

这是服务器上的代码:

var express = require('express');
var app = express();
app.use(express.bodyParser());
var fs = require('fs');
var sys = require('sys');
app.listen(8080);


app.post('/upload', function (req, res) {
    console.log(req.files);
});

我想最终将收到的文件保存在服务器上。现在,当我运行服务,然后是客户端时,服务器会记录一个空数组 - {} 而不是上传的文件。

我该如何解决这个问题?

更新: 服务器代码有效,因为我使用 Fiddler 成功对其进行了测试。

【问题讨论】:

标签: node.js


【解决方案1】:

为了正确上传文件,您需要在客户端中做更多的工作:

var r = request.post(url);
var form = r.form();
form.append('my_file', fs.createReadStream(file));

(大部分取自here

【讨论】:

    【解决方案2】:

    express.bodyParser() 适用于multipart/form-data 编码体。您只是将文件内容作为正文发送,因此您需要将数据通过管道传输到可写流或对其进行缓冲。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-16
      • 2012-01-17
      • 2021-10-06
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多