这是我的简单快递服务:
let express = require('express'),
fs = require('fs'),
path = require('path');
var app = express();
app.set("json spaces", 2);
app.use(express.static(__dirname + "/static"));
app.use(function(req, res, next) {
var data = new Buffer('');
req.on('data', function(chunk) {
data = Buffer.concat([data, chunk]);
});
req.on('end', function() {
req.rawBody = data;
next();
});
});
app.post("/upload/:filename", function(req, res) {
let path = "/tmp/" + req.params.filename;
fs.writeFile(path, req.rawBody, "binary", function(error) {
res.send({
message: "sadfasdf"
});
});
});
app.listen(3001, function() {
console.log("Started!");
});
我这样做是为了上传二进制数据:
curl -H "Content-Type: application/octet-stream" -X POST http://localhost:3001/upload/test.tiff -d @/home/vagrant/test.tiff
对于大约1100kb的文件,它实际上只会写入大约622kb。有人能告诉我出了什么问题吗?
答案 0 :(得分:0)
这就是我使用curl
的问题。我使用的是-d
,而应该使用--data-binary
代替。