Forstå data:image/png;base64: innpakningen og bytene

Parse en data URI ved sitt første komma, skille Base64 fra prosentkoding, og bekreft at etiketten MIME samsvarer med nyttelasten.

data:image/png;base64, er et prefiks, ikke et fullstendig bilde. Den introduserer en innebygd ressurs: skjemaet er data, den deklarerte medietypen er image/png, og markøren sier at følgende nyttelast bruker Base64. Kommaet er grensen mellom metadata og data.

Les strukturen

data:[media-type][;base64],payload

data:text/plain;base64,SGVsbG8=
data:text/plain,Hello%20world

Det første eksemplet representerer teksten Hallo gjennom Base64. Den andre bruker prosentkoding i stedet. En Data URI-parser må inspisere metadataene før du velger en dekoder. Sending av hele URI til en rå Base64 dekoder mislykkes fordi kolon, semikolon og komma ikke er nyttelasttegn.

Del ved første komma, ikke hvert komma. De gjenværende dataene kan i seg selv inneholde kommaer, spesielt i en ikke-Base64 tekst URI. Valgfrie medietypeparametere kan vises foran Base64-markøren. Når medietypen er utelatt, har dataformatet URL en standard teksttype og tegnsett; denne standarden transformerer ikke vilkårlige binære byte til lesbar tekst.

En MIME-etikett er et krav

Hvem som helst kan plassere image/png i prefikset. Etiketten beviser ikke at bytene danner en PNG. Sammenlign signaturen, og be deretter en faktisk bildedekoder laste inn resultatet. På samme måte er en PDF-header bare en gjenkjennelses ledetråd; en komplett PDF parser kan fortsatt avvise dokumentet.

Endre image/png til image/jpeg konverterer ikke bildet. Konvertering betyr å dekode kildebildet og kode en ny fil i målformatet. Dette kan endre åpenhet, metadata, kvalitet og størrelse. Behold originalen når disse forskjellene betyr noe.

Gjenopprett ressursen uten å kjøre den

Analyser og inspiser først. Tekst kan vises som tekst, mens støttede rasterbilder kan forhåndsvises i et bildeelement. Unngå å sette inn vilkårlig HTML eller SVG markering i dokumentet. En data URL kan representere aktivt innhold så vel som et bilde, så dens selvstendige natur er ikke en sikkerhetsgaranti.

For en filnedlasting, bevar de dekodede bytene og bruk en fornuftig utvidelse basert på bekreftet formatinformasjon. For en diagnoserapport, vis deklarert type og oppdaget type separat. Dette gjør uoverensstemmelser synlige i stedet for å skjule dem bak et betryggende filikon. Data URL syntaks og standardinnstillingene er beskrevet i MDN: datanettadresser.