2013-08-21 96 views
1

提交我使用Caman JS在模型項目我編輯視圖來操縱圖像。保存畫布圖像上的服務器使用Rails

$('#vintage').click(function() { 
    Caman("#preview_image", function() { 
    this.reset(); 
    this.crossProcess(100) 
    this.render(function() { 
     this.addClass('selected'); 
    }); 
    }); 
}); 

Caman JS爲我提供了一個選項,以獲取畫布的base64值對象

var dataURL = this.toBase64(); 

但是我現在有種堅持做這個信息。理想情況下,我想在提交我的rails表單時覆蓋原始圖像。

任何建議將是巨大的。

回答

6

好的,我找到了一個解決方案。這是...

創建具有的base64數據的隱藏字段的值

<input id="base64" type="hidden" value="" name="base64"/> 
var dataURL = this.toBase64(); 
$('#base64').val(dataURL) 

然後我在控制器處理這一點。

unless params[:base64].empty? 
    data = params[:base64] 
    image_data = Base64.decode64(data['data:image/png;base64,'.length .. -1]) 
    File.open("#{Rails.root}/public#{@item.image.url.to_s}", 'wb') do |f| 
    f.write image_data 
    end 
    // Carierwave method to regenerate thumbnails 
    @item.image.recreate_versions! 
end 

可能會幫助別人,我還是肯定願意將更好或更有效的方式來做到這一點建議。

+0

夥伴!你剛剛救了我很多心痛! – typicalk

相關問題