【发布时间】:2014-11-05 07:09:46
【问题描述】:
我有一个纯 Uint8Array 我想保存到一个 blob 我可以创建任何类型的 blolb('text/plain'、application/octet-stream 等)..
var a_blob = new Blob(Uint8Array,{type: whatever});
稍后测试我的结果:
this.read_blob = function (blob) {
var reader = new FileReader();
reader.onloadend = function (evt)
{ var full_buffer = evt.target.result; }
reader.readAsArrayBuffer(blob);
}
我已经存储了 1 219 2 0 个值(使用 Uint32Array 存储了 4 个值)并且我检查了一切都是正确的。
现在,我有:(我想检查 blob 值)
var data = new Uint32Array (full_buffer,0,4);
我有: 0:808464433 1:809054514 2:808464432 3:808464432 ????????????
如果我使用:
var data = new Uint8Array (full_buffer,0,4);
我有: [49,48,48,48,50,49,57,48,48,...] 是 1 0 0 0 2 1 9 0 ... 的 ascii 代码。 (我的值的字符串表示形式......)
我做错了什么? 也许 blob 并没有真正保存为纯二进制数据? fullbuffer 是二进制字符串对象吗? 我必须使用特定类型吗? 我是否以不同的方式读取缓冲区? 必须在循环中创建一个关联 full_buffer 个人数据的 Uint8Array 吗?
【问题讨论】:
-
如果您相信您的解决方案将来对其他人有帮助,您应该回答自己的问题(而不是使用解决方案编辑您的问题)。不过,您可能需要等待一段时间才能自行回答。
-
请把你的答案从你的问题中移到答案中。我会投赞成票!
标签: javascript blob