在 PHP 中从 Base64 字符串检测图像类型
人们可能会遇到对原始图像文件的访问受到限制,只留下一个 Base64 的情况- 编码字符串表示形式。从这样的字符串确定图像类型可能具有挑战性。虽然 imagecreatefromstring() 函数从解码的字符串创建图像资源,但它隐藏了原始图像类型信息。
解决方案:利用 FileInfo
FileInfo 提供了一个可行的解决方案对于这个问题。通过使用其 finfo_buffer() 方法,可以直接从 Base64 解码的字符串中检索图像的 MIME 类型。该方法有两个参数:一个打开的文件句柄(使用 finfo_open() 获得)和原始图像数据。
示例代码:
<code class="php">// Encoded base64 string $encoded_string = "...."; // Decode the string $imgdata = base64_decode($encoded_string); // Open FileInfo handle $f = finfo_open(); // Determine MIME type $mime_type = finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE);</code>
$mime_type变量现在将包含图像的 MIME 类型,例如“image/jpeg”或“image/png”。然后可以使用此信息来确定用于保存图像的适当文件扩展名。
以上是如何使用 FileInfo 从 PHP 中的 Base64 编码字符串中提取图像类型?的详细内容。更多信息请关注PHP中文网其他相关文章!