Ce face Blob / File
Un Blob conține date (text, octeți, alte blob-uri) și un tip MIME, ca "image/png". Primești blob-uri de la fetch (raspuns.blob()), din canvas sau le creezi tu, de exemplu pentru un fișier de descărcat. size este mărimea în octeți.
Conținutul se citește asincron: text(), arrayBuffer(), bytes() (un Uint8Array) sau stream() (pentru fișiere mari, pe bucăți). slice creează un blob nou dintr-o parte. File este un Blob cu name și lastModified; așa primești fișierele alese într-un <input type="file">.
Parametri
| Parametru | Descriere |
|---|---|
parti |
Un tablou de texte, octeți sau alte blob-uri. |
optiuni |
Opțional. type (tipul MIME); la File și lastModified. |
Ce returnează
Un obiect Blob sau File.
Exemple
Exemplul 1: Creare și citire
size și slice lucrează cu octeți, nu cu caractere: „ă” ocupă doi octeți, iar tăietura după 4 octeți îl rupe în două.
const blob = new Blob(["Bună, ", "Ana!"], { type: "text/plain" });
console.log(blob.size, blob.type);
console.log(await blob.text());
console.log(await blob.slice(0, 4).text());
console.log(await new Blob([new Uint8Array([72, 105])]).bytes());
console.log((await blob.arrayBuffer()).byteLength);
Rezultat
11 text/plain
Bună, Ana!
Bun�
Uint8Array(2) [ 72, 105 ]
11
Exemplul 2: Un fișier și citirea pe bucăți
const fisier = new File(["linia 1\nlinia 2\n"], "note.txt", { type: "text/plain", lastModified: 0 });
console.log(fisier.name, fisier.size, fisier instanceof Blob, fisier.lastModified);
for await (const bucata of fisier.stream()) {
console.log("bucată de", bucata.length, "octeți");
}
Rezultat
note.txt 16 true 0
bucată de 16 octeți
Greșeli frecvente
- Uiți
awaitlablob.text(). Metodele de citire sunt asincrone. - Citești cu
text()un fișier de câteva sute de MB și pagina se blochează. Foloseștestream()sauslice.
Comenzi înrudite
URL.createObjectURL / revokeObjectURL: Creează o adresă temporară (blob:…) pentru un fișier sau Blob din memorie, ca să-l afișezi sau descarci.FileReader: Citește conținutul unui fișier ales de utilizator: ca text, ca adresă data: sau ca octeți.Response (json, text, blob): Răspunsul unei cereri fetch: starea, antetele și metodele care citesc conținutul ca JSON, text sau date binare.