我下面的教程HTML5ROCKSFileReader.readAsArrayBuffer回報爲空
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我在屏幕上得到:[對象ArrayBuffer]
和控制檯日誌:未定義
而在鉻18,我得到的控制檯: Uncaught TypeError:無法讀取屬性'byteLenght'爲空
哪裏exactely你卡住了? [this](http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-slicing-files)是基本代碼。現在,你有什麼修改,你期望什麼,出了什麼問題? –
@RobW我改變了reader.readAsBinaryString(blob);到eader.readAsArrayBuffer(blob),我期待得到ArrayBufferbut但我得到空。 – wonglik
無法在Chromium 18中重現:http://jsfiddle.net/XDbnJ/我看到'[object arrayBuffer]'。在問題中包含*您的*代碼,包括有關您的瀏覽器和您的期望的詳細信息。 –