2

Mimetype を決定するために PHP 関数 finfo_file を使用していますが、.mpg ファイルを video/mpeg ではなく application/octet-stream として報告し続けます。

CentOS を使用しており、/etc/mime.types に次のように表示されます。

# grep 'mpg' /etc/mime.types 
audio/mpeg          mpga mp2 mp3
video/mpeg          mpeg mpg mpe

以下はサンプルコードです。

$file = '/tmp/sample.mpg';
$fi = new finfo( FILEINFO_MIME_TYPE );
echo $fi->file( $file );

出力:

application/octet-stream
4

1 に答える 1

2

これらの PHP 関数は、ファイルの内容を分析してそのタイプを判別するためのデータを提供するマジック ファイルの提供に依存しています。Unix システムでは、この機能はfileコマンドを介して公開されます。

決して見ません/etc/mime.types

コンストラクターでマジック ファイルへのパスを指定しなかったため、PHP は/usr/share/misc/magicデフォルトで . CentOS では、このファイルはfile-libsパッケージによって提供されます。パッケージが見つからないか破損している場合、予期しない結果が生じる可能性があります。

于 2012-07-28T18:52:36.943 に答える