1. ホーム
  2. javascript

Javascript FileReaderのbase64文字列から型を除去する方法は?

2023-09-16 19:02:14

質問

私のJavascriptに以下のようなコードがあります。

var reader = new FileReader();
reader.onloadend = function () {
    alert(reader.result);
};

これで、以下のようなデータが表示されました。

 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC

カンマの後の部分だけが欲しいということです。私はそれを reader.result.value , reader.result.valueOf() などの組み合わせがありますが、コンマの後ろから始まるbase64文字列を取得するための正しい方法が見つかりません。2つ目のアイデアは、コンマとその前のすべてを単純に取り除くことですが、それをどのように行うのかがよくわかりません。

どなたか、これを実行する方法をご存知でしょうか?すべてのヒントを歓迎します!

どのように解決するのですか?

以下の関数で解決できます。

var base64result = reader.result.split(',')[1];

これは、文字列を文字列の配列に分割し、最初の項目(インデックス0)には data:image/png;base64 を含む文字列の配列に分割し、2 番目の項目 (インデックス 1) に base64 でエンコードされたデータを格納します。

もう一つの解決策は、カンマのインデックスを見つけ、カンマの前とカンマを含むすべてを単純に切り捨てることです。

var base64result = reader.result.substr(reader.result.indexOf(',') + 1);

参照 JSFiddle .