base64文字列で表現された画像データなどをjavascriptのファイルオブジェクトに変換する方法。
大まかな手順としては以下の通りとなる。
-
base64文字列をデコードする。(atobメソッド)
-
バイナリデータのオブジェクトにデコードしたデータを格納する。(Uint8Array)
-
ファイルオブジェクトを生成する。(File)
例
//引数はbase64形式の文字列と作成するファイルオブジェクトのファイル名
var createJpegFile4Base64 = function (base64, name) {
// base64のデコード
var bin = atob(base64.replace(/^.*,/, ''));
// バイナリデータ化
var buffer = new Uint8Array(bin.length);
for (var i = 0; i < bin.length; i++) {
buffer[i] = bin.charCodeAt(i);
}
// ファイルオブジェクト生成(この例ではjpegファイル)
return new File([buffer.buffer], name, {type: "image/jpeg"});
};