2008-10-13 53 views
3

我知道mime_content_type()已過時,但它似乎對我的選擇是在目前糟糕。 Finfo似乎需要添加文件並在Windows上更改ini方向;我不想對我製作的劇本要求這個。PHP的mime_content_type()不能在Windows

我需要找到文件的MIME類型,但在Windows調用mime_content_type($filename)當它失敗。 mime_magic.magicfile指向正確的文件,但在ini文件中啓用mime_magic.debug的時候,我收到此錯誤信息:

Warning: mime_content_type()[ http://www.php.net/mime_magic] : mime_magic not initialized in C:\xampp\htdocs\test.php on line 2

我不知道如果這是一個問題,如果它仍然發生時我禁用調試,它只是不告訴我。

我檢查,並在extension=php_mime_magic.dll ini文件啓用和httpd.conf中指定

LoadModule mime_module modules/mod_mime.so 
#LoadModule mime_magic_module modules/mod_mime_magic.so

我使用的XAMPP 1.6.5。

回答

1

這可能與this bug report。當您按照'FOO' is not a valid mimetype, entry skipped的順序調用腳本時,錯誤日誌中是否有錯誤?

不幸的是在特定線程的最後答覆是繼續使用Fileinfo ..

通讀another thread描述了同樣的問題 - 當你開啓調試,你將其設置爲「開」或1?不應該有所作爲,但在上面鏈接的線程中,這似乎是解決方案的一部分。


我不知道如果這是一個問題,或者當我關閉調試,它只是不告訴我,如果它仍然發生。

當您在調試關閉的情況下回顯mime_content_type的值時,您會得到什麼?

+0

我無法得到它與張貼在線程中提出的解決方案的工作,和原來的海報也放棄了。然後再次,我無法使用Fileinfo :-( – RobbieGee 2008-10-13 13:33:56

0

Finfo似乎需要在Windows上添加文件並更改ini方向;我不想對我製作的劇本要求這個。

你試過finfo_buffer?這允許您使用該文件作爲一個字符串,那麼你可以這樣做:

$finfo = new finfo; 
$filename = $_GET['filename']; 
var_dump($finfo->buffer(file_get_contents($filename))); 

也是從那個錯誤報告的一個問題是,MIME數據庫是過時的 - 你嘗試用不同的副本?