这类似于发布here的问题,但该解决方案对我不起作用。也许是因为我没有正确传递数据。
我从Flash中截取屏幕截图并使用Jquery在页面上显示:
$SNAPSHOT_PREVIEW.attr("src","data:image/jpg;base64," + imgData);
$HIDDEN_BASE64_STRING.val(imgData);
我很好并且可以将图像保存到Flash中的Rails,但是出于安全原因,Flash不允许您在没有用户按下按钮的情况下调用后期操作。说得通。无论如何,现在我无法使用Paperclip保存来自HTML表单的图像:
#(photo has_attached_file:image)
@photo = params[:photo]
data = StringIO.new(Base64.decode64(params[:base64_string]))
data.class.class_eval { attr_accessor :original_filename, :content_type }
data.original_filename = "screenshots.jpg"
data.content_type = "image/jpg"
@photo.image = data
产生错误:
NoMethodError (undefined method `image=' for #<ActiveSupport::HashWithIndifferentAccess:0x8c2e420>):
如何将base64图像数据细化为回形针附件?
对于奖励积分,我是否需要隐藏字段来传递数据,或者是否有一种聪明的,与浏览器兼容的方式将图像src用作表单值?
答案 0 :(得分:1)
你有代码:
@photo = params[:photo]
params
只是一个哈希值,所以稍后,当你调用@photo.image
时,Rails就会出错。也许你想要:
@photo = Photo.new(params[:photo])
代替?