我正在从SAP B1服务层获取图像。在邮递员中,我可以将其查看为image/png
,但显示时出现问题。
显示它的正确方法是什么<img />
?
require(fetchedImage)
-不起作用
我创建了一个Cloud Function来获取图像并将其传递给客户端,但是我不确定该怎么做。
有一个超级奇怪的东西是这样的
data:
> '�PNGörönöu001aönöu0000öu0000öu0000örIHDRöu0000öu.........
不知道如何通过它,res.send(IMAGE IN PNG)
这样我就可以在客户端看到图像。
检查base64
转换,但不确定如何使用。
更新资料
邮递员要求:(此功能正常)
GET:https : //su05.consensusintl.net/b1s/v1/ItemImages('test')/ $ value
标头:SessionId:尝试时询问我
由于某些原因,我们无法直接在前端获取图像,而需要创建一个中间件,因此我们在 Firebase Cloud Function
因此,这是获取图像并且不知道如何传递图像的函数。
这是Firebase Cloud Function中的函数:
if (!req.body.productId) {
res.status(400).send({ error: "productId is required" });
return;
}
console.log("Starting the process");
const productId = req.body.productId;
const login = await Auth.login();
const fetchedImg = await ItemMaster.getImage(login["SessionId"], productId);
//Here in the fetchedImg, we're getting some data like
res
.status(200)
.set("Content-Type", "image/png")
.send(fetchedImg);
我们得到这样的响应:
{状态:200,
statusText:“确定”,
标头:
{ server: 'nginx', date: 'Wed, 22 Jan 2020 03:52:22 GMT', 'content-type': 'image/png', 'transfer-encoding': 'chunked', connection: 'close', dataserviceversion: '3.0', 'content-disposition': 'inline; filename="rr-96600.png"', vary: 'Accept-Encoding', 'set-cookie': [ 'ROUTEID=.node2; path=/b1s' ] },
配置:
{ url:
数据:
'PNG \ r \ n \ u001a \ n \ u0000 \ u0000 \ u0000 \ rIHDR \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ b \ u0002 \ u0000 \ u0000 \ u0000 \ u0000 \ u0006 \u001fS \ u0000 \ u0000 \ u0000 \ u0019tEXt软件\ u0000Adobe ImageReadyq.e <\ u0000 \ u0000 \ u0003hiTXtXML:com.adobe.xmp \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000
这条线超长,可以再打80-100条线
如果要测试,可以使用以下方法:
邮差:
开机自检:https://us-central1-rapid-replacement.cloudfunctions.net/getImageFromItems
正文:{“ productId”:“ test”}
有效的productId为:1.“ RR000102” 2.“测试” 3.“ RR000101”
const request = require('request')
和路线request.get(url).pipe(res);
res.set({'Content-Type': 'image/png'});