检测从数据库中提取的文件的 MIME 类型

Detect MIME Type of file extracted from Database

我有文件存储在 MySQL 数据库中。

我们需要找到这些文件的 MIME 类型,以强制文件在浏览器中打开而不是下载。

getimagesize 和 finfo 在这种情况下不起作用,因为它们需要一个参数作为文件路径而不是文件内容。

有没有办法直接从文件内容中检测 PHP 中的 MIME 类型。

您可以使用 finfo_open 和 finfo_buffer 获取 mime 类型。在此示例中,我从 google 中读取图像的内容并获取其 mimetype:

<?php

$Resource = finfo_open(FILEINFO_MIME);
$Info     = finfo_buffer($Resource, file_get_contents('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png')); // Returns: image/png; charset=binary

list($Mime, $Other) = explode(";", $Info);

echo $Mime; // image/png