我会使用fileinfo来获取我的文件的mime类型,因为不推荐使用mime_content_type。 但我有一个问题,这是大文件的好方法吗?
如果我有一个1.5gb的文件,我不想在内存中“打开”这个文件只是为了获取mime类型......
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>
感谢。
答案 0 :(得分:6)
我认为finfo从文件头获取MIME信息,所以如果你只提供非常少的文件的第一个字节,它将起作用。我用3GB MKV文件对此进行了测试:
<?php
$finfo = new finfo(FILEINFO_MIME);
var_dump(
$finfo->buffer(
file_get_contents('My movie.mkv', false, null, -1, 1024),
FILEINFO_MIME_TYPE
)
);
它正在回归:
string(16) "video/x-matroska"
所以它有效!