说明如何创建多项选择图像上传



我想创建一个图片上传器。用户可以将 url 粘贴到图像中,然后上传图像,也可以从本地计算机上传图像。我应该如何验证映像?

如何使用回形针或其他图像上传 gem 创建它?

我的观点:

<%= simple_form_for [:admin, @konkurrancer], :html => { :multipart => true } do |f| %>
    <%= f.input :name, :label => 'Titel', :style => 'width:500;' %>
    <%= f.file_field :photo, :label => '125x125', :style => 'width:250;' %> or 
    <%= f.input :photo, :label => '125x125', :style => 'width:500;' %>
    <%= f.button :submit, :value => 'Create item' %>
<% end %>
以下是实现

远程上传(并且仍然使用回形针)的方法:

创建如下类:

require 'open-uri'
# Make it always write to tempfiles, never StringIO
OpenURI::Buffer.module_eval {
  remove_const :StringMax
  const_set :StringMax, 0
}
class RemoteUpload 
  attr_reader :original_filename, :attachment_data
  def initialize(url) 
    # read remote data
    @attachment_data    = open(url)
    # determine filename
    path = self.attachment_data.base_uri.path
    # we need this attribute for compatibility to paperclip etc.
    @original_filename = File.basename(path).downcase
  end
  # redirect method calls to uploaded file (like size etc.)
  def method_missing(symbol, *args)
    if self.attachment_data.respond_to? symbol
      self.attachment_data.send symbol, *args
    else
      super
    end
  end
end

编辑

您可以向模型添加虚拟属性,例如photo_remote_url:

class YourModel < ActiveRecord::Base 
  attr_accessor :photo_remote_url
  def photo_remote_url=(url) 
    return if url.blank?
    self.photo = RemoteUpload.new(url)
  end
end

相关内容

  • 没有找到相关文章

最新更新