2009-11-17 130 views
0

我正在使用PHP 5.3,並且已經檢查過我的文件信息已啓用。但是當我運行我的代碼及其發生的錯誤fileinfo_open()致命錯誤

Fatal error: Call to undefined function finfo_open()

任何人都可以幫我解決了這個問題,這裏是我的代碼。

$mime=finfo_open(FILEINFO_MIME,filename); 
     echo "File Type is: ".$mime; 

回答

0

「文件名」需要是包含「MIME魔術」數據庫的文件。如果要確定文件的類型,首先需要打開MIME數據庫,然後請求該數據庫來識別該文件。

例如,如果在MIME數據庫存儲在/usr/share/misc/magic.mgc(大多數Linux發行版存儲它那裏),你可以這樣做:

// open MIME database 
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic.mgc"); 
if (!$finfo) 
    die("error opening MIME info database"); 

// print out MIME information of "some-file-name-here" 
echo finfo_file($finfo, "some-file-name-here"); 

finfo_close($finfo); 

但是,如果這是一個虛擬主機提供商,您可能需要複製將magic.mgc文件放入您的公共Web目錄中。

+0

對不起,現在這個答案是無關緊要的,因爲提問者更新了他的問題。 – intgr 2009-11-17 10:52:31

0

也許你錯過了php.ini中的一些配置。要麼你沒有擴展(或動態庫)打開或作爲建議here php.ini中的一行。

清單:

  • 有沒有在你的php.ini enable_dl = On一條線嗎?

  • 你有一條線extension=fileinfo.so

+0

我檢查了我的php.ini文件和enable_dl =在我發現這個和擴展名= php_fileinfo.dll而不是擴展名= fileinfo.so – 2009-11-17 11:15:01

+0

您正在使用Windows然後......您是否在安裝擴展後重新啓動您的apache服務器? – stefita 2009-11-17 13:09:38