PHP はファイルのヘッダー情報を分析して、アップロードされたファイルの種類を判断します

WBOY
リリース: 2016-06-20 13:04:38
オリジナル
1067 人が閲覧しました

PHP でファイルをアップロードする場合、ファイルの拡張子で判断してアップロードできるファイルの種類を制限するのが一般的ですが、この方法には欠点があると思います。ユーザーがアップロードしたファイルの種類を判断するために最も基本的な関数から使用できるメソッド。

この関数がファイル ヘッダー情報を通じてアップロードされたファイルの種類を判断するプロセスを簡単に分析します。まず、fopen() 関数を使用してアップロードされたファイルを開き、ファイルの最初の 2 バイトを読み取ります。フレッド()。取得した内容はバイナリ文字列になりますので、プログラムコード内で判断するために、ここではunpack()関数を使用してバイナリデータを10進数の文字列に変換します(unpack()関数は主にバイナリ演算に使用します)。 . 具体的な使い方はこちらのPHPヘルプドキュメントを参照して判断してください!

ケースコードを以下に直接投稿します:

<p>$filename='http://www.scutephp.com/logo.gif';</p>$file=fopen($filename,'rb');<br />$bin=fread($file,2); //只读取上传文件的头文信息的2个字节<br />fclose($file);<br />$strInfo=@unpack('c2chars',$bin);<br />$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);<br />$fileType='';<br />switch ($typeCode){<br />	case 7790:<br />		$fileType='exe';<br />	break;<br />	case 7784:<br />		$fileType='midi';<br />	break;<br />	case 8297:<br />		$fileType='rar';<br />	break;<br />	case 255216:<br />		$fileType='jpg';<br />	break;<br />	case 7173:<br />		$fileType='gif';<br />	break;<br />	case 6677:<br />		$fileType='bmp';<br />	break;<br />	case 13780:<br />		$fileType='png';<br />	break;<br />	default:<br />		echo 'unknown';<br />	break;<br />}<br />echo '文件类型:'.$fileType.' 文件头信息:'.$typeCode;
ログイン後にコピー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート