在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中文網其他相關文章!