php 5.5.7 fileinfo是一款非常重要的PHP擴展,它可以用于檢測文件類型,從而避免一些安全問題的出現。比如說你要上傳一個文件,如果不檢測文件類型,那么就會有可能上傳一個惡意文件。但是如果使用fileinfo對上傳的文件進行檢測,那么就可以及時發現文件類型不正確的問題,從而有效避免安全隱患。
下面我們來看一下如何使用php 5.5.7 fileinfo來檢測文件類型。
$fi = finfo_open(FILEINFO_MIME_TYPE); // 返回mime類型 echo finfo_file($fi, $file); // 輸出mime類型字符串 finfo_close($fi); // 關閉資源
上述代碼會返回你上傳的文件的mime類型,比如說image/jpeg、application/pdf等等。通過這個mime類型,你就可以很好地判斷上傳的文件是否合法了。
需要注意的是,如果你的PHP版本較低,那么就無法使用php 5.5.7 fileinfo擴展。這種情況下,你可以使用其它一些方法來檢測文件類型。比如說通過文件后綴名來判斷文件類型:
function get_file_type($file) { $file_type = ''; $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png' || $ext == 'gif') { $file_type = 'image'; } elseif ($ext == 'doc' || $ext == 'docx' || $ext == 'txt' || $ext == 'pdf') { $file_type = 'document'; } else { $file_type = 'unknown'; } return $file_type; }
上述代碼通過獲取文件的后綴名來判斷文件類型,如果文件后綴名是jpg、jpeg、png或gif,則判定為圖片文件。如果文件后綴名是doc、docx、txt或pdf,則判定為文檔。否則判定為未知文件類型。當然,這種方法不如使用fileinfo判斷嚴謹,但是在PHP版本較低的情況下也可以使用。
總之,無論你使用哪種方法來判斷文件類型,在上傳文件時一定要認真檢查文件的合法性,避免一些不必要的安全問題的出現。