2016-04-18 12 views
8

私は、反応したネイティブでb64をblobに変換しようとしています。base64をReact NativeのBlobに変換するには?

しかし、atob関数でエラーが発生しています。

これは私のコードです。

var binary = atob(this.state.avatarSource.uri.split(',')[1]); 
var byteNumbers = new Array(binary.length); 

for(var i = 0; i < binary.length; i++) { 
    byteNumbers.push(binary.charCodeAt(i)); 
} 
var file = new Blob([new Uint8Array(byteNumbers)], {type: 'image/jpeg'}); 

誰もが考えていますか?

+0

今まであなたをしましたこれを理解する?私は同じ問題を抱えています – pomo

+0

[JavaScriptでbase64文字列からブロブを作成する]の可能な複製(http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in - ジャバスクリプト) – Endless

答えて

2

イメージのベース64を取得しています。その後、私は下のコードからそれを表示しています。のみDebug Modeに動作すること、それはあなたが

let imgSrc = "data:image/png;base64," + base64ImageData; 
<Image source={{uri: imgSrc, scale: 1}} style={{ height: 80, width: 80}}/> 
6

atobまたはbtoaを使用しないでください役立つことを願っています。

デバッグモードを使用している場合は、ブラウザでJSコードを実行しています(V8である必要があります)。一方、プロダクションモードでアプリを実行する場合は、JavascriptCoreにはatobまたはbtoaの実装。

base-64を使用してデータをBASE64エンコードされた文字列に変換できますが、正しいBlobオブジェクトを作成できるかどうかはわかりません。

私の理解から、BlobはJSコンテキストとファイルシステムの間の橋渡しであり、React NativeはまだファイルシステムAPI自体を持っていないため、Blobオブジェクトを取得する可能性がありますが、常に空です。

あなたがarrayからイメージを作成しようとしている場合は、私が働いているプロジェクトですreact-native-fetch-blobを見て、数字が含まれて、うまくいけば、それはこの種の問題を解決することができます:)

関連する問題