2

我正在使用 php 函数 finfo_file 来确定 mimetype,它会将 .mpg 文件报告为 application/octet-stream 而不是 video/mpeg。

我正在使用 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 回答