我正在尝试将blob(使用zip.js创建)转换为base64并将其保留在websql数据库中。然后我也想以相反的方式做这个过程。无论如何,我的测试代码(没有压缩)看起来像:
var blob = new Blob([data], {
type : "text/plain"
});
blobToBase64(blob, function(b64) { // convert BLOB to BASE64
var newBlob = base64ToBlob(b64) ; // convert BASE64 to BLOB
console.log(blob.size + " != " + newBlob.size) ;
});
查看一个工作示例:http://jsfiddle.net/jeanluca/4bn5G/
所以,奇怪的是,它适用于Chrome,但不适用于Safari(也不适用于我的iPad)。
我还尝试将base64ToBlob重写为
function base64ToBlob(base64) {
var binary = atob(base64);
return new Blob([binary]) ;
}
但是de uncompress不再起作用,给我一个“IndexSizeError:DOM Exception 1”异常
我的代码中有什么可能错误的建议吗?
日Thnx
答案 0 :(得分:4)
我发布评论后就找到了解决方案。
而不是
new Blob([data]);
DO
new Blob([data.buffer]);
注意添加" .buffer"