2011-01-04 12 views
4

私はユーザーがファイルをアップロードできるようにしていますが、私が最も効果的なソリューションアップロードされたファイルの拡張子をPHPで取得するにはどうすればよいですか?

を使用してい

私はそれが次の方法

$fileInfo = pathinfo($_FILES['File']['name']); 
echo $fileInfo['extension']; 

$ext = end(explode('.',$_FILES['File']['name'])); 
echo $ext; 

方法を使用するのが最善か、拡張子を得るでしょうより良い解決策があるある

を使用して入手できますか?

答えて

12

pathinfo($_FILES['File']['name'], PATHINFO_EXTENSION)

  • 可能な限り、(@Sarfrazはその間に言った)組み込み関数を使用し、
  • エキスのみ必要な情報(options = PATHINFO_EXTENSION
+5

の名前を変更することができますが、入力を信用していません!アップロードされたファイルの実行を許可せず、好ましくはアップロードされたファイルを 'DocumentRoot'の外に移動して、実行可能であってもそれを見つけることができないようにしてください。 – Patrick

+0

@Patrick良い点! – jensgram

+0

=これは完全に動作しますが、私はこの解決策に固執すると思います – Roland

1

pathinfoを使用)は、明らかな理由により良好です。機能のためのビルトイン機能を使用してくださいではなく、再作成すること:)

3

より良い方法 - fileinfo extension with PHP >=5.3

PS:は、ファイル名の拡張子を信用していない任意のユーザーが任意のどのファイル拡張子

+0

良い解決策ですが、自分の開発環境が現在PHP 5.1.6を実行しているため、これはうまくいきません。 – Roland

+0

@Roland - ditch 5.1。*、5.2。*もはやサポートされていません... 5.3を探す時間ですが、アップグレードするのが面倒すぎる – ajreal

+0

私はあなたに同意しますが、残念ながらマシンの所有者ではありません。 – Roland