SAP B1 Hizmet Katmanı'ndan bir resim alıyorum. Postacıda, olarak görüntüleyebiliyorum image/png
, ancak görüntülenen bir sorun var.
Bunu göstermenin doğru yolu nedir <img />
?
require(fetchedImage)
- çalışmıyor
Görüntüyü almak ve istemciye aktarmak için bir Bulut İşlevi oluşturdum, ancak nasıl yapılacağından emin değilim.
Süper tuhaf bir nesneye sahip olmak böyle bir şey
data:
> '�PNGörönöu001aönöu0000öu0000öu0000örIHDRöu0000öu.........
Nasıl geçeceğini bilmiyorum res.send(IMAGE IN PNG)
böylece istemci tarafında bir görüntü almak görebilirsiniz.
İşaretli base64
dönüşüm ama bunların nasıl kullanılacağı emin değilim.
Güncelleme
Postacı Talebi: (Bu iyi çalışıyor)
GET: https://su05.consensusintl.net/b1s/v1/ItemImages ('test') / $ değeri
Headers : SessionId: DENEYİNİZDE SORUN
Herhangi bir nedenle, Görüntüyü doğrudan Ön Uçta getiremiyoruz ve bir ara katman oluşturmamız gerekiyor, bu yüzden Firebase Cloud Function
İşte görüntüyü getiren ve nasıl geçeceğini bilmeyen fonksiyon.
Firebase Bulut İşlevindeki fonksiyon:
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);
Ve şöyle bir yanıt alıyoruz:
{durum: 200,
statusText: 'Tamam',
başlıklar:
{ 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' ] },
yapılandırma:
{ url:
veri:
'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 \ u0000Adobe ImageReadyq e <\ u0000 \ u0000 \ u0003hiTXtXML: com.adobe.xmp \ u0000 \ u0000 \ u0000 \ u0000 \ u0000
BU SÜPER UZUN VE 80-100 satır daha gidiyor
Test etmek istiyorsanız aşağıdakileri kullanabilirsiniz:
Postacı:
POST: https://us-central1-rapid-replacement.cloudfunctions.net/getImageFromItems
body: {"productId": "test"}
Geçerli ürün numarası: 1. "RR000102" 2. "test" 3. "RR000101"
const request = require('request')
ve rotada proxy yapabilirsinizrequest.get(url).pipe(res);
res.set({'Content-Type': 'image/png'});