Frontend’e java springle ResponseEntity<MultiValueMap<String, FileSystemResource>> içinde birden fazla resim gönderiyorum.
let res = await fetch('http://localhost:8081/get-files',
{method: "GET", signal: ctrl.signal});
await addImage(res.body);
async function addImage(body) {
let url = await reader.read().then(({_, value}) => value).then((stream) => new Response(stream)).
then((response) => response.blob()).then((blob) => URL.createObjectURL(blob));
let elem = document.createElement("img");
elem.setAttribute("src", url);
elem.setAttribute("height", "64px");
elem.setAttribute("width", "64px");
elem.setAttribute("alt", "collage-photo");
elem.setAttribute("object-fit", "contain");
elem.setAttribute("className", "file");
document.getElementById("images").appendChild(elem);
}
Bu scripti çalıştırdığımda url tüm dosyaları içeriyor. Streami tekli resimlere nasıl ayırabilirim?
Ben aynı response içinde birden fazla resim indirmeyi hiç denemedim.
Sanıyorum binary dosya indirdiğin için response encode/decode yapman gerekecektir.
Diğer yöntem dosya içeriğini base64 olarak çevirip json liste olarak dönebilirsin.
Ya da her bir resmi farklı http çağrı atabilirsin.
Hafıza ve işlem gücünü etkin kullanmak adına her birini ayrı http çağrı ile indirmen daha mantıklı olacaktır. Diğerleri hem hafızayı zorlar hem de işlemciyi biraz yorar.