Saya mengambil gambar dari SAP B1 Service Layer. Di tukang pos, saya dapat melihatnya sebagai image/png
, tetapi ada masalah menampilkannya.
Apa cara yang benar untuk menunjukkannya <img />
?
require(fetchedImage)
- tidak bekerja
Saya telah membuat Fungsi Cloud untuk mengambil gambar dan meneruskannya ke klien, tetapi saya tidak yakin bagaimana melakukannya.
Memiliki benda super aneh seperti ini
data:
> '�PNGörönöu001aönöu0000öu0000öu0000örIHDRöu0000öu.........
Tidak tahu cara mengirimkannya res.send(IMAGE IN PNG)
sehingga saya bisa melihat mendapatkan gambar di sisi klien.
Memeriksa base64
konversi tetapi saya tidak yakin bagaimana menggunakannya.
Memperbarui
Permintaan tukang pos: (Ini berfungsi dengan baik)
DAPATKAN: https://su05.consensusintl.net/b1s/v1/ItemImages ('test') / $ value
Header : SessionId: MEMINTA SAYA KETIKA ANDA MENCOBA
Untuk beberapa alasan, kami tidak dapat mengambil Gambar langsung di Front-End dan perlu membuat middleware sehingga kami melakukannya di Firebase Cloud Function
Jadi di sini adalah fungsi yang mengambil gambar dan tidak tahu cara melewatinya.
Inilah fungsi di 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);
Dan kami mendapat respons seperti ini:
{status: 200,
statusText: 'OK',
tajuk:
{ 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' ] },
konfigurasi:
{ url:
data:
' PNG \ r \ n \ u001a \ n \ u0000 \ u0000 \ u0000 \ rIHDR \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ b \ u0002 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0019tEXtSoftware \ u0000Adobe ImageReadyq e <\ u0000 \ u0000 \ u0003hiTXtXML: com.adobe.xmp \ u0000 \ u0000 \ u0000 \ u0000
INI SUPER PANJANG DAN PERGI UNTUK 80-100 baris lagi
Jika Anda ingin menguji, Anda dapat menggunakan yang berikut ini:
Tukang pos:
POST: https://us-central1-rapid-replacement.cloudfunctions.net/getImageFromItems
tubuh: {"productId": "test"}
ProductId yang valid adalah: 1. "RR000102" 2. "test" 3. "RR000101"
const request = require('request')
dan dalam ruterequest.get(url).pipe(res);
res.set({'Content-Type': 'image/png'});