Der*_*rek 8 javascript arrays filereader typed-arrays
我有一个充满二进制数据的类型数组,它是从ArrayBuffer生成的
var myArr = new Uint8Array(myBuffer);
Run Code Online (Sandbox Code Playgroud)
我正在向用户展示这个
var blob = new Blob(myArr, {type: "octet/stream"};
var blobURL = URL.createObjectURL(blob);
Run Code Online (Sandbox Code Playgroud)
并插入一个链接
"<a href=" + blobUrl + " download=" + filename "/a>"
Run Code Online (Sandbox Code Playgroud)
后来,我让用户从磁盘中选择文件,并使用文件阅读器来处理
var reader = new FileReader();
reader.onload = function () {
console.log(reader.result);
};
reader.readAsArrayBuffer(sourceFile);
Run Code Online (Sandbox Code Playgroud)
问题是,似乎无论我做什么,我得到文件内容的"字符串".事实上,当我保存文件时,我可以打开它,它显然是人类可读的.IE,如果我的Uint8Array是{"0" : "51", "1" : "52", "2" : "53" }
我可以在文本编辑器中打开下载的blob,我只看到"515253",我认为不应该发生什么.
如何为我正确格式化的文件创建文件下载链接,以便我可以在正确的值中读取它?
Der*_*rek 12
事实证明,问题是我在创建Blob时遇到语法错误.
修正后的代码看起来像 var blob = new Blob([myArr], {type: "octet/stream"};
我不确定为什么如果我已经传递了一个ArrayBuffer参数,为什么我需要括号表示法.似乎多余?
根据Mozilla 的说法
var blob = new Blob([typedArray.buffer], {type: 'application/octet-stream'});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9974 次 |
| 最近记录: |