在我的开发环境中,我有两台服务器。POST
一个通过http 请求向另一个发送和图像。
客户端服务器这样做:
fs.readFile(rawFile.path,'binary',function (err, file){
restler.post("http://0.0.0.0:5000",{
data: file,
headers:{
"Content-Type": rawFile.type,
}
}).on('complete',function(data,response){
console.log(data);
res.send("file went through")
})
接收请求的服务器执行以下操作:
server.post('/',function(req,res,next){
fs.writeFileSync("test.png",req.body,"binary",function(err){
if(err) throw err;
res.send("OK")
})
})
如果我发送一个小图像,它工作正常。但是,如果我发送一个大图像,虽然文件保存正确,但只显示图像的第一上部。其余为黑色。图像大小正确。
我想这只是被写入文件的第一块图像。我试过创建 areadStream
和 awriteStream
但它似乎不起作用:
req.body.pipe(fs.createWriteStream('test.png'))
我可以直接从二进制数据流式传输pipe
到文件中吗?就我所见,readStream
通常用于从文件而不是原始二进制数据中流式传输。
我读了一些帖子,但它似乎对我不起作用。
我restler
在客户端服务器和restify
另一个中使用模块。
谢谢!