我有以下客户服务:
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成功测试了它。
答案 0 :(得分:0)
express.bodyParser()
适用于multipart/form-data
个编码正文。您只是将文件内容作为正文发送,因此您需要将数据传输到可写流或缓冲它。
答案 1 :(得分:0)
要正确上传文件,您需要在客户端进行更多工作:
var r = request.post(url);
var form = r.form();
form.append('my_file', fs.createReadStream(file));
(主要取自here)