我在网络服务器上有一张图片 (http://example.com/img.jpg)。我在浏览器中打开该图像并将其保存到磁盘。
如果我通过“fs
”模块(fs.readFileSync
)在 Node 中打开文件,我会得到一个以 0xff 开头的缓冲区,这就是我想要的期待。
我希望能够直接从 HTTP 请求中获得相同的结果。我正在使用“请求”模块来发出请求。
request('http://example.com/img.jpg',function(error, response, body){
//code here
});
我无法弄清楚如何将响应或正文从我从文件系统获得的内容转换为等效的缓冲区。我错过了什么?
最佳答案
您可以通过设置 encoding
来获得一个 Buffer
为 null
:
request('http://example.com/img.jpg', { encoding: null }, function(error, response, body){
console.log(Buffer.isBuffer(body)); // true
});
request
处理任何其他值 as an argument对于 buffer.toString()
,默认 undefined
为 "utf8"
。
关于node.js - 如何在 Node 中通过 HTTP 读取二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943653/