欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php不通過后綴如何獲取文件類型

這篇文章主要講解了“php不通過后綴如何獲取文件類型”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“php不通過后綴如何獲取文件類型”吧!

創(chuàng)新互聯(lián)建站一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、成都網(wǎng)頁設(shè)計(jì)、小程序定制開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、app軟件開發(fā)公司是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來見證!

獲取文件類型的方法:1、使用“$_FILES['uploadfile']['type']”語句;2、使用“finfo_file(finfo_open(FILEINFO_MIME),文件路徑)”語句;3、通過讀取文件頭六個(gè)字節(jié)來進(jìn)行判斷。

php不通過后綴如何獲取文件類型

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦

php獲取文件類型(不通過后綴)

方法1:$_FILES

如果是php上傳文件,則可以用$_FILES['uploadfile']['type']來獲取文件類型,但是同樣會(huì)存在和pathinfo同樣的問題,該方法僅僅只能根據(jù)文件后綴來判斷文件類型。

方法2:php Fileinfo 獲取文件MIME類型(finfo_open)

代碼示例:

<?php
	$finfo = finfo_open(FILEINFO_MIME); // 返回 mime 類型
    $filename = '.\Uploads\2.zip';
    var_dump(finfo_file($finfo, $filename));
    finfo_close($finfo);
    die;

返回結(jié)果:

php不通過后綴如何獲取文件類型

說明: 如果文件存在則返回文件類型,否則返回false。該方法需要php5.3.0+版本??梢愿鶕?jù)返回的結(jié)果來判斷是什么類型的文件。該方法即便是原文件被改過后綴,已然可以讀到原文件類型。

方法3:讀取文件頭六個(gè)字節(jié)作為判斷

<?php
// 官方示例
function minimime($fname) {
    $fh=fopen($fname,'rb');
    if ($fh) { 
        $bytes6=fread($fh,6);
        fclose($fh); 
        if ($bytes6===false) return false;
        if (substr($bytes6,0,3)=="\xff\xd8\xff") return 'image/jpeg';
        if ($bytes6=="\x89PNG\x0d\x0a") return 'image/png';
        if ($bytes6=="GIF87a" || $bytes6=="GIF89a") return 'image/gif';
        return 'application/octet-stream';
    }
    return false;
}
// 將文件頭4個(gè)字節(jié)轉(zhuǎn)換成16進(jìn)制判斷
function fileType($filename) {
    // 讀取文件的前4個(gè)字節(jié),根據(jù)硬編碼判斷
    $file = fopen ( $filename, "rb" );
    $strFile = fread ( $file, 4 ); //只讀文件頭4字節(jié)
    fclose ( $file );
    $strInfo = @unpack ( "C4chars", $strFile );  
    //dechex(),把十進(jìn)制轉(zhuǎn)換為十六進(jìn)制。  
    $code = dechex ( $strInfo ['chars1'] ) .   
            dechex ( $strInfo ['chars2'] ) .   
            dechex ( $strInfo ['chars3'] ) .   
		    dechex ( $strInfo ['chars4'] );  
    $type = '';  
    switch ($code) //硬編碼值查表  
    {
        case "504b34" :  
            $type = 'application/zip; charset=binary';  
            break;
        case "89504e47" :
            $type = 'image/png; charset=binary';  
            break; 
        default :
            $type = false;  
            break;
    }
    return $type;
}

說明: 這個(gè)方法有缺陷,不同類型的文件,文件頭4個(gè)字節(jié)可能會(huì)相同,并且部分文件類型表示文件類型的字符串,少于4個(gè)字節(jié)??梢钥紤]將方法2和方法3結(jié)合使用。

擴(kuò)展知識(shí):通過后綴獲取文件類型

pathinfo方法

代碼示例:

/** 
* 獲取文件后綴(如果文件名為11.11,11不是后綴,會(huì)默認(rèn)11為后綴)
* $file string 文件路徑或者文件名
*/
function get_extension($file){
return pathinfo($file, PATHINFO_EXTENSION);

說明: pathinfo具體使用方法,可以查看php手冊(cè)。但是該方法僅僅只能根據(jù)文件后綴來判斷文件類型,如果html后綴的文件,被修改成.php的后綴之后,讀取到的則是php類型文件。

感謝各位的閱讀,以上就是“php不通過后綴如何獲取文件類型”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)php不通過后綴如何獲取文件類型這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁題目:php不通過后綴如何獲取文件類型
網(wǎng)站路徑:http://chinadenli.net/article20/pijhjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、搜索引擎優(yōu)化、建站公司、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站維護(hù)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化