Techioz Blog

Ruby on Rails: ファイルが画像かどうかをどのように確認しますか?

概要

ファイルが画像かどうかをどのように確認しますか?次のような方法を使用できると思います。

def image?(file)
  file.to_s.include?(".gif") or file.to_s.include?(".png") or file.to_s.include?(".jpg")
end

しかし、それは少し非効率的であり、正しくない可能性があります。何か案は?

(ところで、私はペーパークリッププラグインを使用していますが、ファイルがペーパークリップの画像であるかどうかを判断する方法が見つかりません)

解決策

一度ご確認ください

MIME::Types.type_for('tmp/img1.jpg').first.try(:media_type)
=> "image"

MIME::Types.type_for('tmp/img1.jpeg').first.try(:media_type)
=> "image"

MIME::Types.type_for('tmp/img1.gif').first.try(:media_type)
=> "image"

MIME::Types.type_for('tmp/ima1.png').first.try(:media_type)
=> "image"