我有一个Axis M1011相机,它设置为只要检测到运动,就会向服务(使用HTTP POST)发送一系列jpeg图像。我正在使用node.js构建服务。使用node.js接收POST请求
我成功地接收POST请求与他们的标题,但我在保存请求正文中的数据时遇到问题。这里是代码:
function addEvent(req, res)
{
var buffer = '';
console.log(req.headers);
req.on("data", function(chunk)
{
console.log("chunk received");
buffer += chunk;
});
req.on("end", function()
{
console.log("saving file");
fs.writeFile("./tmp/"+ new Date().getTime()+".jpg", buffer, function(error)
{
if(error)
{
console.log(error);
}
else
{
console.log("saved");
res.send("OK");
res.end();
}
});
});
}
在控制台上,我得到了这种输出。 Ofcourse,内容长度从文件的不同而不同文件:
{ host: '192.168.0.100:8888',
'content-type': 'image/jpeg',
'content-disposition': 'attachment; filename="file13-07-19_20-49-44-91"',
'content-length': '18978' }
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
saving file
saved
的问题是,我得到一个相同的,损坏的,其中大小约为33KB,不管有多大的图像tmp文件夹的文件。我在接收这些文件时做错了什么?
你知道如何解决这个问题吗? – bubakazouba
说实话,没有。我之后使用过node.js,我想我实际上已经开始工作,但在这种情况下,我不知道哪里出了什么问题。也许现有的答案有意义,但我没有解决。 –