BLOBをbase64に変換する 質問する

BLOBをbase64に変換する 質問する

Blobこれは文字列に対して実行したいコードのスニペットですBase64:

このコメント部分は機能し、これによって生成された URL が img src に設定されると、画像が表示されます。

var blob = items[i].getAsFile();
//var URLObj = window.URL || window.webkitURL;
//var source = URLObj.createObjectURL(blob);
//console.log("image source=" + source);
                        
var reader = new FileReader();
reader.onload = function(event){
console.log(event.target.result)
}; // data url!
var source = reader.readAsBinaryString(blob);

問題は下のコードにあり、生成されたソース変数はnullです

アップデート:

上記のコードのように、JQuery を使用して Blob ファイルから Base64 文字列を作成するより簡単な方法はありますか?

ベストアンサー1

var reader = new FileReader();
reader.readAsDataURL(blob); 
reader.onloadend = function() {
  var base64data = reader.result;                
  console.log(base64data);
}

形成するドキュメント readAsDataURLbase64にエンコードする

有能な機能としてawait:

function blobToBase64(blob) {
  return new Promise((resolve, _) => {
    const reader = new FileReader();
    reader.onloadend = () => resolve(reader.result);
    reader.readAsDataURL(blob);
  });
}

注: BLOB の結果を Base64 として直接デコードするには、まず Base64 でエンコードされたデータの前の Data-URL 宣言を削除する必要があります。Base64 でエンコードされた文字列のみを取得するには、まず結果からdata: / ;base64, を削除します。

おすすめ記事