在我的开发环境中,我有两个服务器。其中一个通过
客户端服务器执行以下操作:
接收请求的服务器会执行以下操作:
如果我发送一个小图像,它可以正常工作。但是,如果我发送一个大图像,尽管文件被正确保存,但只显示图像的第一部分。其余部分是黑色的。图像大小是正确的。
我猜只有图像的第一个块被写入了文件。我尝试创建一个readStream和一个writeStream,但似乎不起作用:
我可以直接从二进制数据流中传输并将其
我在客户端服务器中使用
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")
})
})
如果我发送一个小图像,它可以正常工作。但是,如果我发送一个大图像,尽管文件被正确保存,但只显示图像的第一部分。其余部分是黑色的。图像大小是正确的。
我猜只有图像的第一个块被写入了文件。我尝试创建一个readStream和一个writeStream,但似乎不起作用:
req.body.pipe(fs.createWriteStream('test.png'))
我可以直接从二进制数据流中传输并将其
pipe
到文件中吗?根据我所见,readStream
通常用于从文件而不是原始二进制数据流中进行传输。我读了几篇post,但似乎对我无效。我在客户端服务器中使用
restler
模块,在另一个服务器中使用restify
。谢谢!