4

私はHtml5rocksチュートリアルに従っています

http://www.html5rocks.com/en/tutorials/file/dndfiles/

そして、ファイルの例をスライスする際に、readAsBinaryStringの代わりにreadAsArrayBufferを使用しようとしています(ファイルの解像度を見つけるためにgifヘッダーを読み取りたいため)。しかし、evt.target.result(readAsBinaryStringを使用している間は文字列です)が原因でスタックします

何か案は?

編集:コード

reader.onloadend = function(evt) 

{

  if (evt.target.readyState == FileReader.DONE) { // DONE == 2
    document.getElementById('byte_content').textContent = evt.target.result;
    console.log(evt.target.result.byteLenght)
    document.getElementById('byte_range').textContent = 
        ['Read bytes: ', start + 1, ' - ', stop + 1,
         ' of ', file.size, ' byte file'].join('');
  }
};

if (file.webkitSlice) {
  var blob = file.webkitSlice(start, stop + 1);
} else if (file.mozSlice) {
  var blob = file.mozSlice(start, stop + 1);
}
reader.readAsArrayBuffer(blob);
}

そのため、Firefox 13では画面に表示されます:[object ArrayBuffer]

およびコンソールログ:未定義

Chromium 18にいる間、コンソールにアクセスします:Uncaught TypeError:nullのプロパティ'byteLenght'を読み取れません

4

1 に答える 1

5

入力ミスがあります:

console.log(evt.target.result.byteLenght)

byteLenghtする必要がありますbyteLength

于 2012-06-22T06:05:02.237 に答える