來源:互聯網
上載者:User
關鍵字
php5.3以下使用fileinfo獲得檔案的mime類型
php5.3.0以下要獲得檔案的mime類型,一般的方法是使用mime_content_type()方法,不過這個方法已經過時,所以最好使用fileinfo來代替。
本人使用的是windows環境,下面介紹的是基於windows環境的。
首先要下載php_fileinfo.dll檔案,可以在http://pecl.php.net/package/Fileinfo 這裡下載,不過這裡下載到的是源檔案,需要自己編譯。也可以在這裡下載http://dllcentral.com/php_fileinfo.dll/5.2.5.5/ ,不過下到的是5.2.55版本的。如果你使用的php環境是xampp的話,則不用自己下載,xampp裡面已經整合了這個東西。
之後到sourceforge.net下載file程式(file程式是GNUWin32 Project的程式之一),地址是:http://sourceforge.net/projects/gnuwin32/files/file/ ,不過最好選擇4.20版本或者之前的的,因為以後的版本中沒有magic.mime檔案。下載二進位版本,類似於file-x.xx-bin.zip。將下載的file-x.xx-bin.zip解壓縮,從share目錄中將存放檔案類型資訊的magic和magic.mime兩個檔案複製到到一個目錄下,假設這個目錄為D:\xampp\php\extras。其中magic可以用apache的conf目錄下的magic代替;PHP的extras檔案夾也有一個 magic.mime檔案,但是用它的話fileinfo擴充無法正確工作(如果使用php內建的magic.mime的話,則使用fileinfo擷取檔案的mime類型的話,每次都返回),不能用來代替GNUWin32的這個magic.mime。
修改php.ini,加入這樣一行:
extension=php_fileinfo.dll
之後重新啟動web伺服器。查看phpinfo()是否已經正確啟用了Fileinfo。
測試代碼如下:
//可以手動自動magic檔案的路徑,也可以通過配置來獲得,以下是通過php.ini的配置
//來獲得magic檔案的絕對路徑
$magicFile = get_cfg_var('magic_mime.magic')';
$testFile = 'd:\test.doc';
$finfo = new finfo(FILEINFO_MIME, $magicFile);
echo $finfo->file($testFile);
?>
輸出:application/msword
注意:必須保證magic.mime與magic兩個檔案放在同一個檔案夾 。
PHP5.3新特性介紹
http://tech.cncms.com/web/php/22489.html
為XHTML發送正確的MIME類型的ASP代碼
http://tech.cncms.com/web/asp/21402.html