amazon s3 - Carrierwave, Minimagick image upload to S3 not working -


i want save several version of images. i'm following , customizing uploading-images-with-carrierwave-to-s3-on-rails, image parameters not allowed form, don't know why. model

class attachment < activerecord::base     mount_uploader :img, s3uploaderuploader end 

my form looks this.

<%= form_tag(img_upload_create_path, { multipart: true, method: "post"}) %>   <div class="fileupload btn btn-default">                       <span>file open</span>     <%= file_field_tag 'user_pic[]', multiple: true, accept:'image/png,image/gif,image/jpeg', class: "pictures btn btn-success" %>   </div>   <%= submit_tag "upload", :class => "btn btn-success btn-lg" %>   </div>   <% end %> 

and controller

class imguploadcontroller < applicationcontroller   def create     params[:user_pic].each |pic|       attachment.create(             img: pic       )     end     redirect_to :back   end  end 

my uploader,

class s3uploaderuploader < carrierwave::uploader::base   include carrierwave::minimagick         storage :fog    def store_dir     "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"   end   def cache_dir     '/tmp/cache/s3file'   end   def extension_white_list     %w(jpg jpeg png gif)   end   #version1   version :detailvertical     process :quality => 50   end   #version2   version :detailhorizontal     process :quality => 50   end   #version3   version :mainvertical, :from_version => :detailvertical     process :resize_to_fit => [240, 320]     process :quality => 100   end   #version4   version :mainhorizontal, :from_version => :detailhorizontal     process :resize_to_fit => [240, 180]     process :quality => 100   end end 

and config/initializers/carrierwave.rb

module carrierwave   module minimagick     def quality(percentage)       manipulate! |img|         img.quality(percentage.to_s)         img = yield(img) if block_given?         img       end     end   end end 

i added log here, when submit images.

processing imguploadcontroller#create html   parameters: {"utf8"=>"✓",   "authenticity_token"=>"c6z+pucbk59+ig/sumcrrkxwfbtca rknzcmu0ag0rmp3jqzvxlwxbq2sf7f/7vazg8iwcxy5cwq+nrepvj10jw==", "user_pic"=>[#<actiondispatch::http::uploadedfile:0x007facb8033df8  @tempfile=#<tempfile:/home/ubuntu/workspace/rackmultipart20160106-5826-109snyd.jpg>, @original_filename="yhouse7.jpg",  @content_type="image/jpeg", @headers="content-disposition: form-data; name=\"user_pic[]\"; filename=\"yhouse7.jpg\"\r\ncontent-type: image/jpeg\r\n">,  #<actiondispatch::http::uploadedfile:0x007facb8033dd0 @tempfile=# <tempfile:/home/ubuntu/workspace/rackmultipart20160106-5826-d9ni1l.jpg>, @original_filename="yhouse7-2.jpg", @content_type="image/jpeg",  @headers="content-disposition: form-data; name=\"user_pic[]\";  filename=\"yhouse7-2.jpg\"\r\ncontent-type: image/jpeg\r\n">],  "commit"=>"upload"} 

ok, after long trip find solution, did it. didn't install imagemagick. downloaded

gem 'carrierwave', github: 'carrierwaveuploader/carrierwave' gem "fog-aws" gem 'mini_magick' 

those 3 gems. please download imagemagick using

sudo apt-get -y install imagemagick 

before start work minimagick.


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -