2011-03-13 12 views
11

Me gustaría utilizar un único campo de archivo para varios formatos. Tenía entendido que Paperclip era lo suficientemente inteligente como para escalar imágenes y dejar solo otros formatos, pero esto no parece funcionar para flv's (que devuelve imagemagick/identify-errors). ¿Hay alguna manera de ayudar a Paperclip un poco y configurar explícitamente formatos específicos para escalar?Imágenes de proceso de clip de papel solo

ACTUALIZACIÓN: Al parecer, estos errores se evitan con: llorón => false (fl00r gracias), que funciona bien para cargas regulares. Sin embargo, lo que trato de hacer aquí es cargar el archivo por FTP y luego crear un nuevo registro por código con un File.new ([: ruta]) en el parámetro attachment. Esto funciona como un encanto para las imágenes, pero el: whiny => false-trick ya no lo hará. ¿Alguien tiene algún consejo sobre esto?

Respuesta

13

conjunto :whiny opción de falsa:

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

no va a ayudar peparclip únicamente para procesar imágenes, pero no va a tirar errores si el procesamiento no

UPD

Procesamiento solo para imágenes:

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

donde puede agregar tantos más tipos de contenido como desee en ["image/jpeg", "image/png"] matriz

+0

parece ayudar mucho, gracias! – Jpunt

+0

algunas actualizaciones aquí – fl00r

+0

Sí, eso debería funcionar, ¡muchas gracias! – Jpunt

3

También puede usar la devolución de llamada de paperclip para el procesamiento posterior de imágenes, e indicarle al clip que solo procese las imágenes. Si la devolución de llamada before_post_process devuelve falso, el procesamiento se detiene. documentación

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 

cheque de un clip para más detalles al https://github.com/thoughtbot/paperclip#events

+0

me gusta este enfoque, pero el código no es del todo correcto:? % (imagen jpeg/gif, image/gif imagen// pjpeg/x-png) .include (attachment_content_type) –

+2

w que tiene que tener cuidado , esta no es la forma en que declaras una matriz usando% w. use esto en cambio '% w (imagen/jpeg image/png image/imagen gif/imagen pjpeg/x-png) .include? (resource_content_type)' – fenec

Cuestiones relacionadas