結論
base64エンコードされたデータのデータ URLを作成し、fetch
を使用する。
fetch('data:image/jpeg;base64,' + 'BQCgFS+uHO/W...')
.then(response => response.blob())
.then(blob => new File([blob], 'image.jpeg'))
.then(file => {
//fileはFileオブジェクト
})
- base64エンコードされたデータのデータ URLを
fetch()
- Response オブジェクトから Blob オブジェクトを取得
- Blob オブジェクトから File オブジェクトを作成
補足
データ URL は
- 接頭辞 (data:)
- データの種類を示す MIME タイプ
- テキストではないデータである場合のオプションである base64 トークン
- データ自体 (base64エンコードされたデータ or テキスト)
の4 つの部品で構成される。
data:[<MINEtype>][;base64],<data>
MIME タイプは、 例えば 'image/jpeg'
で JPEG 画像を表す。
詳細はMIME タイプ (IANA メディアタイプ) - HTTP - MDN Web Docsを参照。