Paperclip process images only

霸气de小男生 提交于 2019-12-19 13:47:06

问题


I would like to use a single file-field for multiple formats. It was my understanding that Paperclip was smart enough to only scale images and leave other formats alone, but this doesn't seem to work for flv's (which returns imagemagick/identify-errors). Is there any way to help Paperclip a bit and explicitly setup specific formats to scale?

UPDATE: Apparently, these errors are prevented with :whiny=>false (thanks fl00r), which works fine for regular uploads. However, what I'm trying to do here is uploading the file by FTP, and later on create a new record by code with a File.new([:path]) in the attachment-parameter. This works like a charm for images, but the :whiny=>false-trick won't do it anymore. Does anyone has any tips on this?


回答1:


set :whiny option to false:

has_attached_file :my_attach, :whiny => false ...

it won't help peparclip to process images only, but it won't throw errors if processing failed

UPD

Processing for images only:

has_attached_file :file, 
  :styles => lambda{ |a| ["image/jpeg", "image/png"].include?( a.content_type ) ? { :small => "90x90#" } : {}  }

where you can add as more as you like content types into ["image/jpeg", "image/png"] array




回答2:


You can also use paperclip's callback for post-processing of images, and instruct paperclip to only process images. If the before_post_process callback returns false, the processing stops.

    before_post_process :process_only_images

    def process_only_images
     %w(image/jpeg, image/png,image/gif,image/pjpeg, image/x-png).include?(attachment_content_type)
    end

Check paperclip's documentation for more details at https://github.com/thoughtbot/paperclip#events



来源:https://stackoverflow.com/questions/5289674/paperclip-process-images-only

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!