检测从数据库中提取的文件的 MIME 类型
Posted
技术标签:
【中文标题】检测从数据库中提取的文件的 MIME 类型【英文标题】:Detect MIME Type of file extracted from Database 【发布时间】:2017-01-18 03:01:13 【问题描述】:我将文件存储在 mysql 数据库中。
我们需要找到这些文件的 MIME 类型,以强制文件在浏览器中打开而不是下载。
getimagesize 和 finfo 在这种情况下不起作用,因为它们需要一个参数作为文件的路径而不是文件内容。
有没有办法直接从文件内容中检测 php 中的 MIME 类型。
【问题讨论】:
为什么还要将文件保存到数据库中? 您是否也保存了扩展程序? 【参考方案1】:您可以使用 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
【讨论】:
以上是关于检测从数据库中提取的文件的 MIME 类型的主要内容,如果未能解决你的问题,请参考以下文章