php5.3以下使用fileinfo獲得檔案的mime類型

來源:互聯網
上載者: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

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.