3

mime_content_type() が非推奨であることは知っていますが、現時点では代替手段の方が悪いように思えました。Finfoファイルを追加し、Windows での ini 方向を変更する必要があるようです。私が作成しているスクリプトにこれを要求したくありません。

ファイルの MIME タイプを見つける必要がありますが、mime_content_type($filename)Windows で呼び出すと失敗します。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 を使用しています。

4

3 に答える 3

1

これは、このバグ レポートに関連している可能性があります。の行に沿ってスクリプトを呼び出すと、エラー ログにエラーが記録されます'FOO' is not a valid mimetype, entry skippedか?

残念ながら、その特定のスレッドでの最終的な応答は、先に進んでFileinfo..を使用することでした。

同じ問題を説明している別のスレッドを読んでいます-デバッグをオンにしたとき、それを「オン」または1に設定しましたか? 違いはありませんが、上記のリンクのスレッドでは、その場合の解決策の一部のようです。


それが問題なのか、それともデバッグを無効にしても問題が発生するのかはわかりませんが、それはわかりません。

mime_content_typeデバッグをオフにして の値をエコーアウトするとどうなりますか?

于 2008-10-13T13:08:43.960 に答える
0

Finfo では、Windows でファイルを追加し、ini 方向を変更する必要があるようです。私が作成しているスクリプトにこれを要求したくありません。

試しましたfinfo_bufferか?これにより、ファイルを文字列として使用できるようになるため、次のことができます。

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

また、そのバグ レポートの問題は、MIME データベースが古くなっていることでした。別のコピーで試してみましたか?

于 2008-10-13T21:32:32.587 に答える
0

Fileinfo は、Windows で作業を開始するためのトリックになる可能性があります。手順はこちら: http://forums.zend.com/viewtopic.php?f=8&t=337#p14681

于 2009-11-10T20:04:28.770 に答える