栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过输入类型=文件获取字节数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过输入类型=文件获取字节数组

[编辑]

如上面的评论所述,尽管仍在某些UA实现中,

readAsBinaryString
方法尚未达到规格要求,因此不应在生产中使用。而是使用
readAsArrayBuffer
并遍历它
buffer
来获取二进制字符串:

document.querySelector('input').addEventListener('change', function() {  var reader = new FileReader();  reader.onload = function() {    var arrayBuffer = this.result,      array = new Uint8Array(arrayBuffer),      binaryString = String.fromCharCode.apply(null, array);    console.log(binaryString);  }  reader.readAsArrayBuffer(this.files[0]);}, false);<input type="file" /><div id="result"></div>

对于将二进制数组转换为arrayBuffer的更可靠的方法。


[旧答案] (已修改)

是的,

<input type="file"/>
感谢FileReader对象及其method,文件API确实提供了一种将File中的文件转换为二进制字符串的方法
readAsBinaryString

[ 但是不要在生产中使用它! ]

document.querySelector('input').addEventListener('change', function(){    var reader = new FileReader();    reader.onload = function(){        var binaryString = this.result;        document.querySelector('#result').innerHTML = binaryString;        }    reader.readAsBinaryString(this.files[0]);  }, false);<input type="file"/><div id="result"></div>

如果需要数组缓冲区,则可以使用

readAsArrayBuffer()
方法:

document.querySelector('input').addEventListener('change', function(){    var reader = new FileReader();    reader.onload = function(){        var arrayBuffer = this.result;      console.log(arrayBuffer);        document.querySelector('#result').innerHTML = arrayBuffer + '  '+arrayBuffer.byteLength;        }    reader.readAsArrayBuffer(this.files[0]);  }, false);<input type="file"/><div id="result"></div>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号