PHP使用finfo_file()函數實現檢測上傳圖片類型的方法

來源:互聯網
上載者:User
這篇文章主要介紹了PHP使用finfo_file()函數檢測上傳圖片類型的實現方法,結合執行個體形式分析了finfo_file()函數的功能、使用方法及相關注意事項,需要的朋友可以參考下

在輸入輸出中,檔案的互動必不可少,比如檔案的上傳什麼的。這裡我們來解決一個小問題,就是如何判斷使用者上傳檔案的檔案類型。

舉一個應用場面:在我們的Web應用中,比如使用者上傳頭像,要求是png,jpg,gif格式,接收到圖片後會根據圖片格式類型做不同的頭像切割處理,但個別使用者會傳一些只更改過檔案尾碼的非標準圖片,比如nowamagic.jpg 強行修改成 nowamagic.png,這樣程式無法對該類型圖片進行切割,切割失敗。這個時候就需要對檔案進行檢測,並且僅僅根據尾碼來判斷是不行的。

這種這麼常見的需求,PHP肯定內建了某些函數來實現的,這個函數就是 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.

函數很簡單,看看官方文檔就大概清楚了,這裡就舉一個使用例子吧,就是上傳一張圖片,並判斷它的類型:

<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檔案同級    $dir = dirname(__file__);    $filename = $img['name'][0];    $tempname = $img['tmp_name'][0];    $savepath = "$dir\\$filename";    $state = move_uploaded_file($tempname, $savepath);    //如果上傳成功,預覽    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>

以上就是本文的全部內容,希望對大家的學習有所協助。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.