7


1

php内でファイルのファイルタイプを見つけるための最良の方法は何ですか? 私はブラウザがだまされるかもしれないと聞いたので、これを行うためのより良い方法は何ですか?

4 Answer


11


あなたは finfo_fileを使うことができます。



5


「魔法の数」を見てください。ファイルの最初の数バイトは通常それがどんな種類のファイルであるかを識別します。 たとえば、GIFの最初の数バイトは、47 49 46 38 37 61または47 49 46 38 39 61、GIF 89aまたはGIF 87aの場合はASCIIです。 他にもたくさんの「魔法の数」があります。 http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_filesを参照してください。

編集:私はこれがPHPのMIME関数よりも信頼性が高いと思います。


4


私はあなたがmimetypeを発見するために finfo_file()を意味すると思う

php.netからの例:



3


ブラウザから返されたContent-Typeを信頼することはできません。 これはファイル拡張子に基づいており、簡単にトリックすることができます。

  • stalepretzel が述べているように、ファイルのcontent-typeを推測する最良の方法はマジックナンバーを使うことです。 サーバーが nixマシン上で稼働している場合は、この機能を使用できます。

Usage: $file_type = get_file_type('my_file_name.ext');

PD:詳細については/usr/share/magic.mimeを確認してください。