2

使用 NodeJs 请求模块,我向服务器发出请求并收到如下响应:

response.body = "����JFIF��C..."

response.headers["content-type"] = image/jpeg

我尝试使用以下代码将其转换为 base64 编码:

let imageData = "data:" + response.headers["content-type"] + ";base64," + new Buffer(response.body).toString('base64');
// "data:image/jpg;base64,77+977+977+977+9ABBKRklGAAEBAAABAAEAAO...";

之后,将其设置为标签以显示在 UI 上,如下所示:

        var image = new Image();
        image.src = response.imageData;

但 UI 显示中断图像,如:在此处输入图像描述

如果我直接访问请求 URL,我仍然会看到正确的图像。我认为转换 base64 方法有问题,但我不知道如何解决。

请帮我。谢谢你。

4

1 回答 1

2

我发现了错误。只需使用编码为 null 的请求,一切都会顺利进行。

var request = require('request').defaults({ encoding: null });

参考:Node.js 从网络获取图像并使用 base64 进行编码

于 2018-12-19T12:01:39.740 回答