gpt4 book ai didi

E11 上的 JavaScript readAsBinaryString 函数

转载 作者:技术小花猫 更新时间:2023-10-29 11:55:00 26 4
gpt4 key购买 nike

本页http://www.html5rocks.com/en/tutorials/file/dndfiles/如果您向下滚动到示例“示例:切片文件。试试吧!”您将看到使用 readAsBinaryString API 来读取本地文件的字节。

我见过 IE(我的情况是 IE11)不支持 readAsBinaryString

即使是帖子中提到的这段代码 HTML5 File API read as text and binary在 IE11 中在 readAsBinaryString 处中断。

我在堆栈溢出中看到一些帖子,它建议使用 ReadAsArrayBuffer()。但它也不起作用。它返回未定义。

我的问题是如果我必须在 IE11 上运行它有哪些选项?是否可以编写另一个 IE 兼容的 JS 函数来完成 readAsBinaryString() 的工作。

最佳答案

我将@Jack 的回答与我的评论结合起来以展示一个完整的工作示例。

<head>我添加此脚本的部分是添加 FileReader.readAsBinaryString IE11中的功能

if (FileReader.prototype.readAsBinaryString === undefined) {
FileReader.prototype.readAsBinaryString = function (fileData) {
var binary = "";
var pt = this;
var reader = new FileReader();
reader.onload = function (e) {
var bytes = new Uint8Array(reader.result);
var length = bytes.byteLength;
for (var i = 0; i < length; i++) {
binary += String.fromCharCode(bytes[i]);
}
//pt.result - readonly so assign content to another property
pt.content = binary;
pt.onload(); // thanks to @Denis comment
}
reader.readAsArrayBuffer(fileData);
}
}

然后我需要稍微修改我的原始脚本代码,因为 target.result使用此回退功能时没有任何值(value)。

var reader = new FileReader();
reader.onload = function (e) {
// ADDED CODE
if (!e) {
var data = reader.content;
}
else {
var data = e.target.result;
}

// business code
};
reader.readAsBinaryString(myFile);

关于E11 上的 JavaScript readAsBinaryString 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31391207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com