我尝试将通过输入文件获得的文件转换为字节[]。
我尝试使用 FileReader,但我一定错过了一些东西:
var bytes = [];
var reader = new FileReader();
reader.onload = function () {
bytes = reader.result;
};
reader.readAsArrayBuffer(myFile);
但最终,我的 bytes var 不包含字节数组。
我看到了这个帖子:通过输入类型=文件获取字节数组 https://stackoverflow.com/questions/32556664/getting-byte-array-through-input-type-file但它不以 byte[] 结尾,并且 readAsBinaryString() 已弃用
我想念什么?
面临类似的问题,确实“reader.result”最终不会成为“byte[]”。所以我将它转换为 Uint8Array 对象。这也不是一个完美的“byte[]”,所以我必须从中创建一个“byte[]”。这是我对这个问题的解决方案,它对我来说效果很好。
var reader = new FileReader();
var fileByteArray = [];
reader.readAsArrayBuffer(myFile);
reader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) {
var arrayBuffer = evt.target.result,
array = new Uint8Array(arrayBuffer);
for (var i = 0; i < array.length; i++) {
fileByteArray.push(array[i]);
}
}
}
'fileByteArray' 就是您正在寻找的。看到评论,看来你也做了同样的事情,仍然想分享这个方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)