ruby-on-rails - Rails 4 - Paperclip - 使用 DATA URI 上传图像

标签 ruby-on-rails image paperclip uri data-uri

这是我的问题,我使用 Rails 4 和回形针来处理上传到我的亚马逊 s3 服务器的图像。
但是,我希望允许用户使用自己的网络摄像头拍照,而不是选择硬盘驱动器上的现有文件。

当我捕捉图像时,我得到一个 图像数据 URI 类似于:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFACAYAAADNkKWqAAAgAElEQVR4nDS7RXNj6bpuW/98xzkRZ8Paa62irMx0ZpptMTOzNMXMzAyWzGnNOW5DdRsOufFJzREPvb/wmkN6KiM9lhCf60gvbaTnJryUkF6LSE8FpLc00nME8SmF+FSEfQppHUF8LMA6i7SqIh36SA8FpHUUHlJIuwLsKkjzBGwCiNsAx6kDFkbEhQFx7EOcCEjrCNIsiDgKwFMZHrJIyzSsikjTKtJ8COs+H/M40tyEtAud3kwrSJsmx2EEaRFCnMVP31vGYGFHWl0ibe6Q9mHEcRpmRaRVDWkRg53A+yzI28ADDwXEWRhxZkRa+GGd5ufQizQLcpwKsC3DqoA0zSKN84jDLNI4wUfPiTR0w9yGNLYhTSOIkwofozzHeYqnoYOPmQ9pKiCOUjAt8d7OIc7CvPQdLMsqNjU1bwMnT10Pm6oPcZTivelkU5bx3FLwWLrlqXzJR+UcsSXnpani0FTzWFXy3DBxqMV46wq8tG3s8gr2RTPHZpxjNcax7ua9YuNQ0PNaM/He9PJUj/DaSPNU8/NStvNY9vBWcfNYMPBU1vBaM/NQMPFYsrNKaThUbOyqHhYFE5OMiklKyaZgZJYysipa2Nf8TJMeNsUA04KCSfYzg8QnVoVbVtkfTEP/YJv+k33uC5vUX8yFL+wKd4ziX5mk/6If/0I/fsM8b2AoKBnGTPQSDkYpFwPBwDStYVvVMcpc0o1c0BcUdGMaBnENVf8Z7fAZy6yKmaBkmpCzTt2zTHxmI1yyS2jZJdy85EJMo1YGUQ0TQcs0amKT9NKLKOgJl7SFc+rCJd2Mi27CRyfpo532U015KCbstNIWWuFresIdPUFLP+6gGbij7PxEP2qi4bAwCUfphRN0Qn46gp5+7IZe/IZeVMks4mPk9TCLuGmH9HSiZto+AwOfm14wRjcUoRH0UA2aybvkDDJmujEDNa+MbkhDx6+kFTDRibioh0yUg3JqYT15j4aqz0TeJSPvPSfv/UoroqQZ0lEPKmlELsn5/pNq4P/QCf0/Wt7f6Xr0dPxmWl4tBfsnMo7fyHjOyDn/Im35nWbknqxXTsFnpBt3UHHe0/Bekrf/k4LzK82AjIr7jGbgG1WfhozbRtLnI2EzUvbekzf9QcH8nZrzmpb7hpL7G0nHn+ScZxRt38kZP1F3fqfsvKDkuCduOCdrOads+0rJ8hcF8xkVxzVp0xkx3Tfylu8UjP9FVv8f5B1XJIwKyk4tWccVUf2/iBn+Tcz0mW7MTMZ8Rkr1n5RU/6BqOCetPiNm+I2g6v8S1/0XKeOvFIx/Ebv8D/KG/yVn/hdJ9T

我的问题是:如何使用图像 Controller 中的回形针根据该数据 URI 上传该图像?

有没有办法可以将该 DATA URI 直接传递给我的 Controller ,而回形针会处理它?
或者我是否必须创建并编写一个临时文件来重建图像,然后将其传递给回形针?

非常感谢!!

最佳答案

Paperclip#io_adapters.for将尝试为工作找到合适的适配器,在这种情况下 Paperclip::DataUriAdapter .您也可以使用 Paperclip::DataUriAdapter当然直接。

def save_data_uri_to_attachment(data_uri)    

  # Instantiates Paperclip::DataUriAdapter attachment
  file = Paperclip.io_adapters.for(data_uri)
  file.original_filename = name

  # Save the model  
  model.attachment = file
  model.save!
end

来源:https://stackoverflow.com/a/28036282/545017

关于ruby-on-rails - Rails 4 - Paperclip - 使用 DATA URI 上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25521331/

相关文章:

ruby-on-rails - Rails 条件 ('if' ) 基于 Controller Action 的语句

ruby-on-rails - 由于 cookie,使用 authlogic 时无法在 Rails 中创建用户

ruby-on-rails - Mongoid `group()` 条件

ruby-on-rails - 事件登记表

image - 无法编译第一个 opencv 程序, '/usr/bin/ld: cannot find -lcv'

ruby-on-rails - 运行迁移时出现重复列名错误

image - ROI以比原始图片更浅的颜色书写

objective-c - UIScrollview 在缩小时更改 UIButton 的图像质量

ruby-on-rails - 你如何在 cucumber 中启动另一个 Rails 实例?

ruby-on-rails - Rails - 回形针 - 多张照片上传不保存