Why it doesn't work?

作業のメモ、記録をブログに残しています。

JavaScript バイナリファイルを読み込む

Python バイナリモードでファイルを読み込む、およびEOFの検出方法 - Why it doesn't work?
の作業は一段落ついたのですが、JavaScriptでバイナリファイルを直接読み込めば、作業の手順を減らせるなと思いつき、掲題の作業に取りかかります。

ポイントは以下の通りです。

  • テキストファイルの読み込みと同様に、Web APIのFileReaderオブジェクトを使用します
  • バイナリデータの読み込みには、readAsArrayBufferメソッドを使用してコンテンツをメモリに読み取ります
  • result プロパティにはファイル/ブロブ データがArrayBuffer オブジェクトとしてして格納されます

以下、サンプルコード。

function loadBinaryFiles(e) {
  var files = e.dataTransfer.files;
  if (files.length) {
    for (var i = 0, file; file = files[i]; i++) {
      var reader = new FileReader();
      reader.onload = function(e) {
          // ここでreader.resultプロパティを処理する
      }
      reader.onerror = function(e) {
        console.error('reading failed');
      };
      reader.readAsArrayBuffer(file);
    }
  }
}

バイナリデータの扱いについては、また別途。