Javascript如何创建和使用带有纯二进制数据的blob
Javascript How to create and use blob with pure binary data
我有一个纯Uint8Array要保存到blob中我可以创建任何类型的blolb("text/plain"、application/octet流等)。。
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:808464431:8090545142:808464323:80846432????????????
如果我使用:
var data = new Uint8Array (full_buffer,0,4);
我有:[49,48,48,58,50,49,57,48,…]它们是1 0 0 0 2 1 9 0…的ascii码。。。。(我的值的字符串表示……)
我做错了什么?也许blob并没有真正保存为纯二进制数据?fullbuffer是二进制字符串对象吗?我必须使用特定类型吗?我必须用不同的方式读取缓冲区吗?必须在循环中创建一个关联完整缓冲区单个数据的Uint8Array?
已解决
正如MDN所解释的:要创建blob,必须使用
blob=新blob(零件,类型);part=要放入新Blob对象的数据对象数组。
因此,解决方法(不容易发现,因为你看到的是一个又一个时间数组、bufferarray、typedarrays……你会感到困惑)是使用[]括号来创建一个元素/s的数组。
所以不是:
var a_blob = new Blob(Uint8Array,{type: whatever});
使用
var a_blob = new Blob([Uint8Array],{type: whatever});
相信我,经过大量的网络搜索,你可以看到帖子,在那里你可以看到带括号和不带括号的blob创建
相关文章:
- 如何处理从条形码扫描仪返回的二进制数据
- 将图像文件存储在猫鼬模式中的二进制数据中,并以html形式显示图像
- 二进制数据的可移植hashCode实现
- Javascript-将类型化数组保存为blob,并作为二进制数据读回
- 获取二进制数据并将其保存为.mp3文件Javascript
- 二进制数据的createObjectUrl失败
- 将数据结构转换为二进制数据
- 将二进制数据发送到服务器
- 将通过 AJAX 上传的二进制数据保存在 PHP 服务器上
- 如何在IE9中读取二进制数据
- 如何将二进制数据映射到javascript中的字符
- Base64解码不适用于二进制数据
- 如何在Firefox中使用xmlhttprequest和二进制数据,例如图像
- 通过HTTP请求将二进制数据上传到AppEngineBlobstore
- 为什么在Web套接字中使用二进制数据
- 在将图像作为原始图像二进制数据(png或jpeg)上传到服务器之前,裁剪或调整图像大小
- 如何在不编码或保存数据的情况下将二进制数据从javascript传递到actionscript(网页到flash)
- 使用牛仔和MessagePack通过websocket发送二进制数据
- 如何在严格模式下将附件下载为二进制数据
- 如何在浏览器中显示单词/ pdf二进制数据