【问题标题】:Rails 4 - Paperclip - Upload an image using DATA URIRails 4 - Paperclip - 使用 DATA URI 上传图片
【发布时间】:2014-10-20 16:39:56
【问题描述】:

我的问题是,我正在使用 Rails 4 和回形针来处理上传到我的 amazon 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

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

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

非常感谢!!

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2015-08-11
      • 2013-12-29
      • 2014-10-16
      • 1970-01-01
      • 2018-03-26
      相关资源
      最近更新 更多