2011-03-13 7 views
11

여러 파일 형식에 하나의 파일 필드를 사용하고 싶습니다. Paperclip이 이미지의 크기를 조정하고 다른 형식 만 남겨두기에 충분히 똑똑하다는 것이 제 생각 이었지만 flv (imagemagick/identify-errors를 반환합니다)에서는 작동하지 않습니다. Paperclip을 도와서 특정 형식을 확장하도록 명시 적으로 설정하는 방법이 있습니까?종이 클립 이미지 만

UPDATE : 분명히, 이러한 오류를 예방할됩니다 힘들어 => 거짓 (감사 fl00r), 일반 업로드 잘 작동합니다. 그러나 여기서 내가하려고하는 것은 FTP로 파일을 업로드하고 나중에 첨부 파일 매개 변수에 File.new ([: path])가있는 코드로 새 레코드를 만드는 것입니다. 이것은 이미지의 매력처럼 작동하지만, whiny => false-trick은 더 이상 그것을하지 않습니다. 아무도 이것에 대한 조언이 있습니까?

답변

13

false로 :whiny 옵션을 설정합니다

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

단지 이미지를 처리하는 peparclip 도움이되지 않습니다,하지만 처리가

UPD

처리에 실패한 경우 오류가 발생하지 않습니다 이미지 전용 :

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

["image/jpeg", "image/png"] 배열

+0

에서 자세한 내용

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 

확인 클립의 문서는 많은 도움이 될 것 같습니다, 감사합니다! – Jpunt

+0

여기에 몇 가지 업데이트 – fl00r

+0

네, 그 덕분에 많이 작동합니다! – Jpunt

3

에 콘텐츠 유형을 추가 할 수 있습니다. 이미지의 후 처리에는 클립의 콜백을 사용하고 이미지 만 처리하도록 클립 클립을 지정할 수도 있습니다. before_post_process 콜백이 false를 반환하면 처리가 중지됩니다. https://github.com/thoughtbot/paperclip#events

+0

이 방법이 마음에 들지만 코드가 정확하지 않습니다. % w (이미지/jpeg 이미지/png, 이미지/gif 이미지/pjpeg 이미지/x-png) .include? (attachment_content_type) –

+2

주의해야합니다. , 이것은 % w를 사용하여 배열을 선언하는 방법이 아닙니다. % w (image/jpeg 이미지/png 이미지/gif 이미지/pjpeg 이미지/x-png) .include? (resource_content_type)'대신에 이것을 사용하십시오. – fenec