data:image/png;base64, er et præfiks, ikke et komplet billede. Den introducerer en inline-ressource: skemaet er data, den erklærede medietype er image/png, og markøren siger, at følgende nyttelast bruger Base64. Kommaet er grænsen mellem metadata og data.
Læs strukturen
data:[media-type][;base64],payload
data:text/plain;base64,SGVsbG8=
data:text/plain,Hello%20world
Det første eksempel repræsenterer teksten Hej gennem Base64. Den anden bruger i stedet procentkodning. En Data URI-parser skal inspicere metadataene, før du vælger en dekoder. Sending af hele URI til en rå Base64 dekoder mislykkes, fordi kolon, semikolon og komma ikke er nyttelasttegn.
Del ved det første komma, ikke hvert komma. De resterende data kan selv indeholde kommaer, især i en ikke-Base64 tekst URI. Valgfri medietype-parametre kan vises før Base64-markøren. Når medietypen udelades, har dataformatet URL en standardteksttype og et tegnsæt; at standard ikke transformerer vilkårlige binære bytes til læsbar tekst.
En MIME etiket er et krav
Alle kan placere image/png i præfikset. Etiketten beviser ikke, at bytes danner en PNG. Sammenlign signaturen, og bed derefter en egentlig billeddekoder om at indlæse resultatet. På samme måde er en PDF header kun et genkendelsesspor; en komplet PDF parser kan stadig afvise dokumentet.
Ændring image/png til image/jpeg konverterer ikke billedet. Konvertering betyder afkodning af kildebilledet og kodning af en ny fil i destinationsformatet. Dette kan ændre gennemsigtighed, metadata, kvalitet og størrelse. Behold originalen, når disse forskelle betyder noget.
Gendan ressourcen uden at udføre den
Parse og inspicere først. Tekst kan vises som tekst, mens understøttede rasterbilleder kan forhåndsvises i et billedelement. Undgå at indsætte vilkårlige HTML eller SVG markeringer i dokumentet. En data URL kan repræsentere aktivt indhold såvel som et billede, så dets selvstændige karakter er ikke en sikkerhedsgaranti.
For en fildownload skal du bevare de afkodede bytes og bruge en fornuftig udvidelse baseret på bekræftede formatoplysninger. For en diagnostisk rapport skal du vise den erklærede type og detekterede type separat. Dette gør uoverensstemmelser synlige i stedet for at skjule dem bag et betryggende filikon. Data URL syntaks og dens standardindstillinger er beskrevet i MDN: data-URL'er.