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);
}
形成するドキュメント readAsDataURL
base64にエンコードする
有能な機能として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, を削除します。