このコーディング クエリでは、ユーザーは HTML フォーム入力から取得した BLOB を Base64 文字列に変換しようとします。提供されたコードは、createObjectURL を使用して URL オブジェクトを作成することによって画像を正常に表示しますが、readAsBinaryString を使用した目的の変換の結果、ソース変数が null になります。
この問題を解決し、提供されたコードの複雑さを回避するには、より簡単な解決策を使用します。 readAsDataURL メソッドの利用方法を以下に示します。
var reader = new FileReader(); reader.readAsDataURL(blob); reader.onloadend = function() { var base64data = reader.result; console.log(base64data); }
FileReader のドキュメントによると、readAsDataURL はコンテンツを Base64 としてエンコードします。
非同期処理の場合、待機可能な関数は次のように定義できます。
function blobToBase64(blob) { return new Promise((resolve, _) => { const reader = new FileReader(); reader.onloadend = () => resolve(reader.result); reader.readAsDataURL(blob); }); }
注: Base64 でエンコードされた文字列のみを取得するには、結果から data:/;base64 を削除します。
以上がBLOB を HTML フォームから Base64 文字列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。