2016-08-09 19 views
0

我在Rails中創建了一個應用程序,用戶可以在JavaScript中使用html5畫布進行繪製。使用JavaScript,我已經能夠畫布轉換爲圖像,使用戶可以輕鬆地右鍵點擊畫布並保存圖像:如何將畫布圖像發送到Rails表單中的數據庫

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

然而,問題是,在畫布住在窗體上。我希望圖像結果以某種方式被添加到數據庫中,以便我可以在應用程序的其他視圖上顯示以前的圖紙。我爲圖片上傳設置了CarrierWave和AWS,但我無法找到重新配置設置的方式,以便在提交表單時將畫布圖像作爲上傳處理。這是否會涉及AJAX或base64?或者有什麼方法可以使用CarrierWave來實現?

+0

你在做什麼把畫布作爲圖像? – Hydro

+0

我在畫布上使用javascript drawImage方法,因此用戶可以在畫上畫布後右鍵單擊畫布,並將其另存爲PNG文件。 –

回答

0

您只需將圖像以base-64形式發送到服務器,然後在需要時重新使用base64源。

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

否則,它可能無法正常工作,因爲圖像格式字節被解釋並可能被其他字符替換。這就是爲什麼base-64最好。

相關問題