PHP判斷上傳文件類型的解決辦法
更新時間:2015年10月20日 14:08:02 投稿:lijiao
php通過判斷上傳文件的頭字符來判斷文件的類型,這可以稱得上是最安全,最真實確定上傳文件類型的方法了,具體實現(xiàn)方法如下
分享給大家php判斷上傳文件類型的方法,大家一起學(xué)習(xí)學(xué)習(xí)。
/**
* 讀取文件前幾個字節(jié) 判斷文件類型
* @return String
*/
function checkTitle($filename){
$file=fopen($filename, "rb");
$bin=fread($file, 2); //只讀2字節(jié)
fclose($file);
$strInfo =@unpack("c2chars", $bin);
$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);
$fileType='';
switch($typeCode){
case 7790:
$fileType='exe';
break;
case 7784:
$fileType='midi';
break;
case 8297:
$fileType='rar';
break;
case 255216:
$fileType='jpg';
break;
case 7173:
$fileType='gif';
break;
case 6677:
$fileType='bmp';
break;
case 13780:
$fileType='png';
break;
default:
$fileType='unknown'.$typeCode;
break;
}
//Fix
if($strInfo['chars1']=='-1' && $strInfo['chars2']=='-40'){
return 'jpg';
}
if($strInfo['chars1']=='-119' && $strInfo['chars2']=='80'){
return 'png';
}
return $fileType;
}
希望通過本文對大家學(xué)習(xí)php程序設(shè)計有所幫助。
相關(guān)文章
PHP中的session永不過期的解決思路及實現(xiàn)方法分享
讓PHP的session永不過期,你可能沒有遇到這么郁悶的問題,但是我遇到過,很郁悶。2011-04-04
php與python實現(xiàn)的線程池多線程爬蟲功能示例
這篇文章主要介紹了php與python實現(xiàn)的線程池多線程爬蟲功能,結(jié)合實例形式分析了php與python實現(xiàn)線程池多線程爬蟲的完整實現(xiàn)方法,需要的朋友可以參考下2016-10-10
php自動識別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法
這篇文章主要介紹了php自動識別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法,涉及php針對當(dāng)前編碼的判斷與對應(yīng)的編碼轉(zhuǎn)換實現(xiàn)技巧,需要的朋友可以參考下2015-08-08
解析php addslashes()與addclashes()函數(shù)的區(qū)別和比較
本篇文章是對php中的addslashes()與addclashes()函數(shù)的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06
php實現(xiàn)的數(shù)組轉(zhuǎn)xml案例分析
這篇文章主要介紹了php實現(xiàn)的數(shù)組轉(zhuǎn)xml,結(jié)合具體案例形式分析了PHP數(shù)組與xml轉(zhuǎn)換的實現(xiàn)方法與相關(guān)操作注意事項,需要的朋友可以參考下2019-09-09
PHP使用gearman進行異步的郵件或短信發(fā)送操作詳解
這篇文章主要介紹了PHP使用gearman進行異步的郵件或短信發(fā)送操作,總結(jié)分析了PHP基于gearman實現(xiàn)異步的郵件或短信發(fā)送相關(guān)配置、啟動與操作注意事項,需要的朋友可以參考下2020-02-02

