2012-03-05 8 views
0

HTML5キャンバスから作成したdataURLをmysql dbに保存しようとしています。AJAXでdataURLを渡します

dataURL = oCanvas.toDataURL(); 

私の問題は、キャンバスのdataURLはの多くを持っている:

は、私が「dataURL」と呼ばれ、私はこのコードを使用してキャンバスのIMGにdataURLを設定しています作ったVARをプルするAJAXのセットアップを持っています私はそれをエンコードしたり、別の方法で操作する必要があるので、私の最終結果をmysql dbに保存し、後でもう一度表示するために "デコード"することができます。

私はvar dataURLを「チーズ」のようなものに設定すると、チーズとしてデータベースに保存されるので、私のAJAXが機能することが分かります。

ご協力いただければ幸いです。

答えて

0

(後に取得する)

def bytes = new Base64().decode(filteredData) as byte[] 

あなたは、データベースへのデコード結果を保存することができます:ここでは

Apache Commons Codecはグルーヴィーで例がありますイベントのように、イメージが描画されたときには、dataURLを非表示のフォーム要素に設定します。もはやそれをajaxに渡す必要はありません:)。しかし、提案をありがとう。

2

あなたはtoDataUrlからの受信データは、このような形式になります。

data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD.... (very long string) 

は、まずデータをフィルタリングするには、お使いの言語がデコードに提供して何のBase64ライブラリを使用するとdata:image/png;base64,

後に一部にのみ受信しましたそれをバイト配列(またはBLOB)に変換します。あなたは、Javaを使用している場合:私は実際に設定してしまった

0

Base64エンコーディングは、イメージをエンコードするためにほぼ4倍のバイト数を要します。送信前にbase32をデコードするには、window.atobを使用して、ajax形式または標準形式を使用しているかどうかを確認することをお勧めします。もちろんIEはサポートしていませんが、this looks like a shimです。