-
- /**
- * アップロードされたファイルの種類を決定する
- * bbs.it-home.org を編集する
- */
- function file_type($filename)
- {
- $file = fopen($filename, "rb");
- $bin = fread($file, 2); //只读2字节
- fclose($file);
- $strInfo = @unpack("C2chars", $bin);
- $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
- $fileType = '';
- switch ($typeCode)
- {
- case 7790:
- $fileType = 'exe';
- 休憩;
- ケース 7784:
- $fileType = 'midi';
- 休憩;
- ケース 8297:
- $fileType = 'rar';
- 休憩;
- ケース 8075:
- $fileType = 'zip';
- 休憩;
- ケース 255216:
- $fileType = 'jpg';
- 休憩;
- ケース 7173:
- $fileType = 'gif';
- 休憩;
- ケース 6677:
- $fileType = 'bmp';
- 休憩;
- ケース 13780:
- $fileType = 'png';
- 休憩;
- デフォルト:
- $fileType = '不明: '.$typeCode;
- }
-
- //
- を修正 if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
- if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) 'png' を返します。
-
- $fileType を返します。
- }
-
- //调用
- echo file_type('start.php'); // 6063 または 6033
- ?>
-
卷制暗号
不知道反过来定义 6063 または 6033 は、fingerphp の话は不是不不不达です。
上のコードは、構築された写真のファイルタイプを判断するのに適していません。
この場合、getimagesize を使用して判断することを検討できます。参考コードは次のとおりです。
- /**
- * getimagesize はファイルタイプを決定します
- * bbs.it-home.org を編集します
- */
- if(in_array($attach['ext'], array('jpg', 'jpeg', 'gif', 'png', 'swf', 'bmp')) && function_exists('getimagesize') && !@getimagesize($target))
- {
- unlink($target);
- Upload_error('post_attachment_ext_notallowed', $attacharray);
- }
- ?>
-
复制代
|