これは何?
AntD Reactの実装中にImageコンポーネントを使った。 その際に、srcのフォーマットについて調べてみた。
Tips
- base64に変換されたPDFファイルの場合、Imageコンポーネントのsrcプロパティには、以下のような値を渡す必要がある。
data:application/pdf ; base64, <base64にエンコードされた文字列>
このフォーマットについてはRFC 2397 - The "data" URL scheme に定義されている。
URLの形式はこちら
data:[<mediatype>][;base64],<data>
この仕様の目的
- データのインライン表示やデータの埋め込みを容易にすること。
- インターネットメディアタイプの仕様
; base64
"data:"
- URLを使用する一部のアプリケーションでは、長さの制限が課される場合がある。(知らなかった)
- たとえば、HTMLのアンカー内に埋め込まれたURLには、HTMLのSGML宣言によって決定される長さ制限がある。 LITLEN(1024)は単一の属性値リテラルに出現できる文字数を制限し、ATTSPLEN(2100)はタグに出現するすべての属性値仕様のすべての長さの合計を制限し、TAGLEN(2100)はタグの全長。
構文
dataurl := "data:" [ mediatype ] [ ";base64" ] "," data mediatype := [ type "/" subtype ] *( ";" parameter ) data := *urlchar parameter := attribute "=" value
- 「urlchar」
- RFC3986を参照してください。 -「type」、「subtype」、「attribute」、および「value」
- 「urlchar」
参考
[https://tex2e.github.io/rfc-translater/html/rfc2397.html:title]
[https://datatracker.ietf.org/doc/html/rfc1866:title]