2011-10-24 6 views
5

PHP 5.3.8をCentOSサーバーにインストールした状態で、fileinfoで単純なPNGファイルのMIMEタイプを検出できません。私は次のコードを持っている場合PHP 5.3.8でfileinfoでMIMEタイプの検出に失敗しました

問題

は基本的には、:あなたがファイルを見ることができるように

<?php 
$const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME; 
$handle = finfo_open($const, '/usr/share/file/magic.mime'); 
$result = finfo_file($handle, '/var/vhosts/v4dev/public/Melvin.png'); 
echo $result; 
unset($handle); 
?> 

をPNG画像です。ファイルのヘッダーバイトがチェックされていて、正しいものです。

application/octet-stream 

私は、ファイルの種類が検出されなかったためであると思います、とのFileInfoは、デフォルトの応答を返されたが、私はそれをチェックする方法を発見した。しかし、このページには、間違った結果を出力します。

file -m /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png 

期待された結果が返さ:

/var/vhosts/v4dev/public/Melvin.png: image/png 

私を、私はmagic.mimeファイルの正しさを確認するには

を試してみました何

、私は、ファイルのコンソールコマンドを使用しましたApacheで提供されている別のmagic.mimeファイルも試しましたが、問題は残ります。

デフォルトのfileinfoの場所(シンボリックリンクとファイルのコピー)、MAGICの環境変数、およびfinfo_openコール(上記)のファイルパスを指定してmagic.mimeファイルを指定しようとしました。

PHPを更新しようとしました。

...今ではオプションがありません。誰もがこれで私を助けることができれば、彼/彼女は幸せに暮らすことができるように


、私は空間を介して幸せの波を送信すると思います。

乾杯

答えて

1

、なぜあなたのスクリプトからfileコマンドを呼び出すことはありませ?

$result = `file -bm /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png` 

確かに、完全ではありませんが、オプションです。

+0

私は何かより堅固なものが得られるまで、一時的なハックとして機能するかもしれない。ありがとう。 – Shtong