Techioz Blog

Rubyでファイル名の拡張子を見つける

概要

私はRailsアプリのファイルアップロード部分に取り組んでいます。ファイルの種類が異なると、アプリによって処理方法が異なります。

特定のファイル拡張子のホワイトリストを作成して、アップロードされたファイルをチェックして、どこに送信するかを確認したいと考えています。ファイル名はすべて文字列です。

ファイル名の文字列の拡張子部分だけを確認する方法が必要です。ファイル名はすべて「some_file_name.some_extension」の形式です。

解決策

irb(main):002:0> accepted_formats = [".txt", ".pdf"]
=> [".txt", ".pdf"]
irb(main):003:0> File.extname("example.pdf") # get the extension
=> ".pdf"
irb(main):004:0> accepted_formats.include? File.extname("example.pdf")
=> true
irb(main):005:0> accepted_formats.include? File.extname("example.txt")
=> true
irb(main):006:0> accepted_formats.include? File.extname("example.png")
=> false