我试图使用FileReader的readAsArrayBuffer属性来读取本地文件。
读取成功,在“onload”回调中,我可以在reader.result中看到Array Buffer对象。但是Array Buffer为空,虽然长度已设置,但数据没有。我该如何获取这些数据?
这是我的代码:
这是我的代码:
<!DOCTYPE html>
<html>
<body>
<input type="file" id="file" />
</body>
<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var selFile = files[0];
var reader = new FileReader();
reader.onload = function(e) {
console.log(e.target.result);
};
reader.onerror = function(e) {
console.log(e);
};
reader.readAsArrayBuffer(selFile);
}
document.getElementById('file').addEventListener('change', handleFileSelect, false);
</script>
</html>
读取器结果的控制台输出
e.target.result
ArrayBuffer {}
e.target.result.byteLength
25312
有人能告诉我如何获取这些数据吗? 有安全问题吗? 没有错误,onerror未执行。
来自评论:请问如何访问缓冲区内容?我正在尝试使用AudioContext
播放音频文件...为此我需要缓冲区数据...
console.log
的输出所迷惑了?console.log()
不会打印缓冲区的内容。 - nmaier