检测从数据库中提取的文件的 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
我有文件存储在 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