Mediumクラスのコンストラクタで、プロパティ$medium->mimeにファイルのMIME型を設定するように作ってあります。

MIME型の検出は以下のプロセスで実装してあります。



  • 全てのファイルでgetimagesizeを実行。画像ファイルならそのMIME型(image/pngなど)が入り、画像でなければ「application/octet-stream」が設定されます。 画像処理および作成 > getimagesize @ php.net
  • PHP5.3.0以降であればPHPのlibmagicライブラリ・バインディングであるFileinfo関数を標準で利用することができます。この関数が利用可能で、$medium->mimeに「application/octet-stream」が設定されていたら、Fileinfo関数による検出をします。ファイルシステム > Fileinfo @ php.net

こんな感じなので、PHPの古いバージョンでも、画像を処理する上では適切なMIME型を利用することができると思います。

MIME型を使利用するとファイルタイプを一意に扱えるため、便利です。MIME型はRFCで定められているので、PHPだけではなく処理系一般で一意となります。(本来はmultipart/form-dataやメールメッセージへの添付ファイルを実装するために定められました)