15

content_type = "application/pdf"他の MIME タイプも含めることができる変数を指定します。

コンテンツ タイプの既定の拡張子を取得するにはどうすればよいですか?

現在、非常に「複雑」に見える2つのソリューションがあります。

文字列をハックする

content_type.split("/")[1]

MIME::タイプを使用する

  require 'mime/types'
  MIME::Types[content_type].first.extensions.first 

より良い解決策はありますか?

4

3 に答える 3

5

MIME タイプを使用した 2 番目のソリューションは、選択する必要があるソリューションです。これにはいくつかの理由があります。

  • 2番目のソリューションは、ユースケースに合わせて設計されています
  • Hack the stringapplication/postscript一貫性がないか、予期しない結果を返す可能性があります (拡張子 has を考えてみてepsください!)
  • おそらくそうとは言えませんが、すべての MIME タイプにデフォルトの拡張子があることを考慮してください。例: jpg (または jpeg または JPG..) 画像のデフォルトの拡張子を定義したのは誰ですか?
于 2013-02-08T10:46:37.700 に答える