5
<%= form_for @model_name, :url => {:controller => 'controller_name', :action => 'index'},:html => {:multipart => true},:validate => true do |f| %>

<%= file_field 'upload', 'datafile'%>

<% end %>

私はこのフォームを持っています。このアップロードで画像のみをアップロードしたい。これを行う方法?

4

3 に答える 3

13

HTML5

<%= f.file_field :file, multiple: true, accept:'image/*' %>
于 2016-01-27T05:18:31.327 に答える
1

コンテンツタイプに基づいて、引き続き簡単な検証を行うことができます。

class MyModels < ActiveRecord::Base

  validate :upload_is_image

  ...

  private

  def upload_is_image
    unless upload and upload.content_type =~ /^image\/(jpeg|pjpeg|gif|png|bmp)$/
      errors.add(:upload, "Not a valid image")
    end
  end

end

明らかに、受け入れたい画像の種類に応じて正規表現を微調整できます。

于 2012-06-05T11:41:44.560 に答える
1

ペーパークリップジェムを使用して、添付ファイルを管理できます。役立つバリデーターがvalidates_attachmentあります。

validates_attachment :avatar, :presence => true,
  :content_type => { :content_type => "image/jpg" },
  :size => { :in => 0..10.kilobytes }
于 2012-06-05T11:32:39.943 に答える