我正在尝试显示已使用node&express在mongoDB中上传的react中的图像。
我正在节点中获取图像,但由于数据为二进制,因此在反应中我无法显示图像。
响应数据:
{"data":{"type":"Buffer","data":
[137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,205,0,0,0,205,8,3,0,0,
0,44,98,4,91,0,0,1,59,80,76,84,69,255,255,255,32,31,31,244,202,177,156,218,
240,124,186,230,0,0,0,....
我尝试了以下代码进行转换,但是没有用。
function hexToBase64(str) {
return btoa(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")));
}
还尝试了这个
如何在React应用程序中转换数据以显示该数据?
答案 0 :(得分:0)
我知道这是一个古老的问题,但是有人可以发现它有用。
尝试将图像转换为类似base64的字符串
objImg.img = new Buffer.from(bitMap).toString("base64")
然后从请求中获取图像时,将状态设置为
setPreviewImg("data:image/png;base64," + result.img)