在 BLOB Oracle 中获取文件类型


Get file type in BLOB Oracle

我在BLOB Oracle列中存储了一个图像。当我尝试阅读它时,我发现 BLOB 字符串中的某个第一个字符是我的图像类型(例如 PNG,但被许多加密(或二进制)字符包围)。这意味着我也存储了我的图像类型。那么,如何通过PHP代码检测它呢?

这是我的第一个 BLOB 字符串,如下所示:

'�PNG

正如zerkms所写,这是文件格式标头的一部分。 它提供有关文件的元数据,以便程序知道如何使用它。

要获取有关存储映像的信息,您可以使用 getimagesizefromstring()

这将返回有关图像的信息数组。 例如,我在SO上的迷你头像图像(如本答案底部所示),当保存为文本文件并像这样访问时:

print_r(getimagesizefromstring(file_get_contents('./image.txt')));

返回以下内容:

Array
(
    [0] => 32
    [1] => 32
    [2] => 3
    [3] => width="32" height="32"
    [bits] => 8
    [mime] => image/png
)

如您所见,图像类型可通过[mime]键获得。

请注意,此函数需要 PHP>= 5.4(这应该不是问题,因为不再支持 <5.4)。