FileReader.readAsArrayBuffer返回null

时间:2012-06-18 20:37:17

标签: javascript html5 fileapi

我正在关注Html5rocks教程

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

我试图在切片文件示例时使用readAsArrayBuffer而不是readAsBinaryString(因为我想读取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]

并在控制台日志上:undefined

在Chromium 18中我进入控制台:Uncaught TypeError:无法读取属性'byteLenght'的null

1 个答案:

答案 0 :(得分:5)

输入错误:

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

byteLenght应为byteLength