2016-08-09 8 views
0

私はJavaScriptを使用してhtml5キャンバス上に描画できるアプリをRailsに作成しています。Railsでフォーム送信時にキャンバスイメージをデータベースに送る方法

var img = new Image; 
    img.onload = function(){ 
    ctx.drawImage(img,0,0); 
    }; 
    img.src = window.mapImgUrl; 

しかし、問題は、キャンバスがフォーム上に住んでいるということである:ユーザーが簡単に右のキャンバスをクリックして画像を保存することができますので、JavaScriptを使用して、私がイメージにキャンバスを変換することができました。何らかの理由で画像の結果がデータベースに追加されるようにして、以前の図面をアプリの他のビューに表示することができます。画像アップロードのためにCarrierWaveとAWSを設定しましたが、キャンバス画像をアップロードしてフォームを送信する際の設定を再構成する方法はわかりません。これは、AJAXまたはbase64を必要とするでしょうか?それともCarrierWaveを利用するための方法がありますか?

+0

イメージとしてキャンバスを取得するために何をしていますか? – Hydro

+0

私はキャンバス上でjavascriptのdrawImageメソッドを使用しています。そのため、ユーザーはキャンバスを描画した後、キャンバスを右クリックしてPNGファイルとして保存できます。 –

答えて

0

イメージをベース64としてサーバーに送信し、必要に応じてベース64ソースを再利用するだけで済みます。

var imgbuffer = canvas.toDataURL(); // canvas, not ctx 

それ以外の場合、画像フォーマットバイトが解釈され、他の文字に置き換えられる可能性があります。だからベース64が最適です。

関連する問題