<script>
var file = document.getElementById("userFile").files[0];
var reader = new FileReader();
reader.readAsArrayBuffer(file);
var byteArray = reader.result;
console.log(byteArray);
</script>
此代码在控制台中产生此错误:无法在“FileReader”上执行“readAsArrayBuffer”:参数1的类型不是“Blob”。
据我了解,FileReader可以接受Blob和File作为参数,因为File接口基于Blob。
答案 0 :(得分:0)
FileReader
要求使用.onload property来在readAsArrayBuffer
(和其他FileReader方法)完成时触发回调。下面的代码段包含一个如何与文件输入的onChange事件一起使用的示例:
const input = document.getElementById('userFile');
const reader = new FileReader();
input.onchange = function() {
const file = input.files[0];
reader.readAsArrayBuffer(file);
};
reader.onload = function() {
const resultArray = new Int8Array(reader.result);
document.getElementById('result').innerHTML = resultArray;
};
<input type="file" id="userFile"/>
<h4>File Data:</h4>
<span id="result"/>