Detecting Image Type from Base64 String in PHP
One may encounter scenarios where access to the original image file is limited, leaving only a base64-encoded string representation. Determining the image type from such a string can prove challenging. While the imagecreatefromstring() function creates an image resource from a decoded string, it conceals the original image type information.
Solution: Utilizing FileInfo
FileInfo offers a viable solution to this problem. By employing its finfo_buffer() method, one can retrieve the image's MIME type directly from the base64-decoded string. This method takes two parameters: an open file handle (obtained using finfo_open()) and the raw image data.
Example Code:
<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>
The $mime_type variable will now contain the image's MIME type, such as "image/jpeg" or "image/png." This information can then be used to determine the appropriate file extension for saving the image.
The above is the detailed content of How to Extract Image Type from Base64-Encoded String in PHP Using FileInfo?. For more information, please follow other related articles on the PHP Chinese website!