2013-07-29 115 views
1

我試圖將blob(使用zip.js創建)轉換爲base64,並將其保存在websql數據庫中。然後我也想用另一種方式來做這個過程。無論如何,我的測試代碼(不壓縮)看起來像:JavaScript:將BASE64轉換爲BLOB僅在Safari瀏覽器中失敗

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瀏覽器(ALS不在我的iPad上)。

我也試圖在base64ToBlob重寫

function base64ToBlob(base64) { 
    var binary = atob(base64); 
    return new Blob([binary]) ; 
} 

但後來去解壓不工作了,給我一個「IndexSizeError:DOM異常1」異常

任何建議,什麼可能是錯的在我的代碼?

日Thnx

+0

是啊..我有同樣的問題。 bas64 - > blob轉換在safari中失敗,但在IE,Chrome和Firefox中可用。你有沒有找到答案? –

回答

3

嗯,我找到了解決辦法只是發表我的評論之後。

而不是

new Blob([data]);

new Blob([data.buffer]);

通知除 「.buffer」

+0

那太棒了!但是我不知道在哪裏應用這個。你能修改我的jsfiddle嗎? –

+0

http://jsfiddle.net/4bn5G/3/ –

+0

當然,thnx很多的解決方案! –

相關問題