data:image/png;base64: sarmalayıcıyı ve baytları anlama

URI Verisini ilk virgülünde ayrıştırın, Base64'yi yüzde kodlamasından ayırın ve MIME etiketinin veri yüküyle eşleştiğini doğrulayın.

data:image/png;base64, bir önektir, tam bir görüntü değildir. Satır içi bir kaynak sunar: şema veridir, bildirilen medya türü image/png'dir ve işaretçi, aşağıdaki yükün Base64 kullandığını belirtir. Virgül, meta veriler ile veriler arasındaki sınırdır.

Yapıyı okuyun

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

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

İlk örnek, Base64 aracılığıyla Merhaba metnini temsil eder. İkincisi bunun yerine yüzde kodlamasını kullanır. Veri URI ayrıştırıcısının, kod çözücüyü seçmeden önce meta verileri incelemesi gerekir. Tam URI öğesinin ham bir Base64 kod çözücüye gönderilmesi başarısız olur çünkü iki nokta üst üste, noktalı virgül ve virgül yük karakterleri değildir.

Her virgülden değil, ilk virgülden bölün. Geriye kalan veriler, özellikle Base64 olmayan bir metin olan URI'de virgül içerebilir. İsteğe bağlı ortam türü parametreleri Base64 işaretçisinden önce görünebilir. Ortam türü atlandığında, URL veri biçimi varsayılan bir metin türüne ve karakter kümesine sahip olur; bu varsayılan, rastgele ikili baytları okunabilir metne dönüştürmez.

MIME etiketi bir iddiadır

Herkes yerleştirebilir image/png önekte. Etiket, baytların bir PNG oluşturduğunu kanıtlamaz. İmzayı karşılaştırın ve ardından gerçek bir görüntü kod çözücüden sonucu yüklemesini isteyin. Benzer şekilde, PDF başlığı yalnızca bir tanıma ipucudur; tam bir PDF ayrıştırıcı yine de belgeyi reddedebilir.

Değişiyor image/png için image/jpeg görüntüyü dönüştürmez. Dönüştürme, kaynak görüntünün kodunun çözülmesi ve yeni bir dosyanın hedef formatta kodlanması anlamına gelir. Bu, şeffaflığı, meta verileri, kaliteyi ve boyutu değiştirebilir. Bu farklılıklar önemli olduğunda orijinali koruyun.

Kaynağı çalıştırmadan kurtarma

Önce ayrıştırın ve inceleyin. Metin, metin olarak gösterilebilirken, desteklenen taramalı görüntüler bir görüntü öğesinde önizlenebilir. Belgeye rastgele HTML veya SVG işaretlemesi eklemekten kaçının. Bir URL verisi, bir resmin yanı sıra aktif içeriği de temsil edebilir, dolayısıyla kendi kendine yeten yapısı bir güvenlik garantisi değildir.

Dosya indirmek için kodu çözülmüş baytları koruyun ve onaylanmış format bilgilerine dayalı makul bir uzantı kullanın. Tanılama raporu için bildirilen türü ve algılanan türü ayrı ayrı görüntüleyin. Bu, uyumsuzlukları güven verici bir dosya simgesinin arkasına saklamak yerine görünür hale getirir. Veri URL sözdizimi ve varsayılanları şurada açıklanmıştır: MDN: veri URL'leri.