获取没有mime_content_type或finfo_open的mime类型


get mime type without mime_content_type or finfo_open

我有一个客户,他非常偏执,想要一些他不允许我接触的东西。他安装了一个非常精简的PHP版本,基本上只保留了他认为重要的部分。也就是说,我有一个脚本,他想做的是上传文件。

我想做一些形式的完整性检查,以确保文件是它需要的,这就是全部。所以我想知道是否有任何特殊的方法,我可以使用,不是mime_content_typefinfo_open以及不特定于任何支持库。他的PHP版本是5.6.x

从PHP文档页面的注释中,这是一个建议的方法。我假设在这种情况下它将运行在linux上:

<?php
function detectFileMimeType($filename='')
{
    $filename = escapeshellcmd($filename);
    $command = "file -b --mime-type -m /usr/share/misc/magic {$filename}";
    $mimeType = shell_exec($command);
    return trim($mimeType);
}
?>

这也假设他给了你访问shell_exec的权限。现在我更仔细地阅读了你的问题,这似乎不太可能。这篇文章还解释了一种类似的方法来完成你需要的东西,而没有这些方法的好处。