亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP使用finfo_file()函數(shù)檢測(cè)上傳圖片類(lèi)型的實(shí)現(xiàn)方法

 更新時(shí)間:2017年04月18日 10:21:19   作者:nowamagic  
這篇文章主要介紹了PHP使用finfo_file()函數(shù)檢測(cè)上傳圖片類(lèi)型的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了finfo_file()函數(shù)的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了PHP使用finfo_file()函數(shù)檢測(cè)上傳圖片類(lèi)型的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

在輸入輸出中,文件的交互必不可少,比如文件的上傳什么的。這里我們來(lái)解決一個(gè)小問(wèn)題,就是如何判斷用戶(hù)上傳文件的文件類(lèi)型。

舉一個(gè)應(yīng)用場(chǎng)面:在我們的Web應(yīng)用中,比如用戶(hù)上傳頭像,要求是png,jpg,gif格式,接收到圖片后會(huì)根據(jù)圖片格式類(lèi)型做不同的頭像切割處理,但個(gè)別用戶(hù)會(huì)傳一些只更改過(guò)文件后綴的非標(biāo)準(zhǔn)圖片,比如nowamagic.jpg 強(qiáng)行修改成 nowamagic.png,這樣程序無(wú)法對(duì)該類(lèi)型圖片進(jìn)行切割,切割失敗。這個(gè)時(shí)候就需要對(duì)文件進(jìn)行檢測(cè),并且僅僅根據(jù)后綴來(lái)判斷是不行的。

這種這么常見(jiàn)的需求,PHP肯定自帶了某些函數(shù)來(lái)實(shí)現(xiàn)的,這個(gè)函數(shù)就是 finfo_file。

finfo_file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Return information about a file,This function is used to get information about a file.

函數(shù)很簡(jiǎn)單,看看官方文檔就大概清楚了,這里就舉一個(gè)使用例子吧,就是上傳一張圖片,并判斷它的類(lèi)型:

<html>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <head>
    <title>文件上傳</title>
  </head>
  <body>
  <form accept="" method="post" enctype="multipart/form-data">
  <input type="file" name="img[]" /><br />
  <input type="submit" name="s" /><br />
  </form>
<?php
  //上傳文件信息
  $img = $_FILES['img'];
  if ($img)
  {
    //文件存放目錄,和本php文件同級(jí)
    $dir = dirname(__file__);
    $filename = $img['name'][0];
    $tempname = $img['tmp_name'][0];
    $savepath = "$dir\\$filename";
    $state = move_uploaded_file($tempname, $savepath);
    //如果上傳成功,預(yù)覽
    if($state)
    {
      echo "<img src='$filename' alt='$filename' /> ";
    }
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    //$mime = finfo_file($finfo, dirname(__FILE__)."/".$filename); 
    $mime = finfo_file($finfo, $savepath); 
    echo $mime;
  }
?>
  </body>
</html>

需要注意的是,finfo_file 函數(shù)需要 PHP 版本 >= 5.3.0,如果低于 5.3,那么需要到 php.ini 里,將 extension=php_fileinfo.dll 前面的分號(hào)去掉來(lái)啟用。

當(dāng)然,檢測(cè)文件類(lèi)型的方式很多種,后面我們會(huì)慢慢講到。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php文件操作總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP中比較兩個(gè)對(duì)象的幾種方式小結(jié)

    PHP中比較兩個(gè)對(duì)象的幾種方式小結(jié)

    在PHP中,比較兩個(gè)對(duì)象并不是一件直接明了的事情,因?yàn)閷?duì)象之間的比較通常依賴(lài)于它們的屬性和狀態(tài),而這些屬性和狀態(tài)可能非常復(fù)雜且多樣化,本文給大家總結(jié)了PHP中比較兩個(gè)對(duì)象的幾種方式,需要的朋友可以參考下
    2024-09-09
  • Ajax PHP 邊學(xué)邊練 之三 數(shù)據(jù)庫(kù)

    Ajax PHP 邊學(xué)邊練 之三 數(shù)據(jù)庫(kù)

    在上一篇備忘日歷實(shí)例中,實(shí)現(xiàn)了當(dāng)鼠標(biāo)放在某個(gè)日期上時(shí),如果當(dāng)天有備忘信息則會(huì)顯示出來(lái),但是這些信息是為了測(cè)試方便事先寫(xiě)在數(shù)組中的數(shù)據(jù),不能體現(xiàn)其實(shí)時(shí)性。
    2009-11-11
  • PHP遞歸復(fù)制、移動(dòng)目錄的自定義函數(shù)分享

    PHP遞歸復(fù)制、移動(dòng)目錄的自定義函數(shù)分享

    這篇文章主要介紹了PHP遞歸復(fù)制、移動(dòng)目錄的自定義函數(shù)分享,本文的特點(diǎn)是對(duì)每一句代碼都做詳盡的注釋,需要的朋友可以參考下
    2014-11-11
  • 深入PHP empty(),isset(),is_null()的實(shí)例測(cè)試詳解

    深入PHP empty(),isset(),is_null()的實(shí)例測(cè)試詳解

    本篇文章是對(duì)PHP empty(),isset(),is_null()的實(shí)例測(cè)試進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php var_export與var_dump 輸出的不同

    php var_export與var_dump 輸出的不同

    var_export必須返回合法的php代碼,也就是說(shuō),var_export返回的代碼,可以直接當(dāng)作php代碼賦值個(gè)一個(gè)變量。 而這個(gè)變量就會(huì)取得和被var_export一樣的類(lèi)型的值
    2013-08-08
  • PHP實(shí)現(xiàn)對(duì)二維數(shù)組某個(gè)鍵排序的方法

    PHP實(shí)現(xiàn)對(duì)二維數(shù)組某個(gè)鍵排序的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)對(duì)二維數(shù)組某個(gè)鍵排序的方法,涉及php針對(duì)數(shù)組的遍歷、比較、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2016-09-09
  • php獲取用戶(hù)瀏覽器版本的方法

    php獲取用戶(hù)瀏覽器版本的方法

    這篇文章主要介紹了php獲取用戶(hù)瀏覽器版本的方法,可使用$_SERVER['HTTP_USER_AGENT']獲取用戶(hù)信息,是非常實(shí)用的技巧,需要的朋友可以參考下
    2015-01-01
  • PHP 截取字符串專(zhuān)題集合

    PHP 截取字符串專(zhuān)題集合

    現(xiàn)在很多情況下,需要用到截取字符串功能,不夠由于gb2312與utf-8的編碼問(wèn)題,需要區(qū)別對(duì)待,下面是具體的實(shí)現(xiàn)方法并從一些比較成熟的系統(tǒng)中扒下的代碼。
    2010-08-08
  • PHP實(shí)現(xiàn)騰訊云視頻加密的示例代碼

    PHP實(shí)現(xiàn)騰訊云視頻加密的示例代碼

    上傳到騰訊云上面的視頻,如何實(shí)現(xiàn)防盜鏈?本文就為大家提供了php實(shí)現(xiàn)騰訊云視頻加密的示例代碼,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • php實(shí)現(xiàn)短信發(fā)送代碼

    php實(shí)現(xiàn)短信發(fā)送代碼

    這篇文章主要介紹了php實(shí)現(xiàn)短信發(fā)送代碼的相關(guān)資料,需要的朋友可以參考下
    2015-07-07

最新評(píng)論