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: 'OK'、
ヘッダー:
{ 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 \ b \ u0002 \ u0000 \ u0000 \ u0000 \ u0006 \u001fS \ u0000 \ u0000 \ u0000 \ u0019tEXtSoftware \ u0000AdobeImageReadyq e<\ u0000 \ u0000 \ u0003hiTXtXML:com.adobe.xmp \ u0000 \ u0000 \ u0000 \ u0000 \ u0000
これは非常に長く、80から100行追加されます
テストする場合は、以下を使用できます。
郵便配達:
POST:https : //us-central1-rapid-replacement.cloudfunctions.net/getImageFromItems
本文:{"productId": "test"}
有効なproductIdは次のとおりです:1. "RR000102" 2. "test" 3. "RR000101"
const request = require('request')
そしてルートでプロキシすることができますrequest.get(url).pipe(res);
res.set({'Content-Type': 'image/png'});