在 PHP 中將 Base64 字串轉換為映像檔
將 Base64 字串轉換為映像檔時會出現問題。 Base64 字串通常包含其他元數據,例如“data:image/png;base64”,這會幹擾正確解碼。
理解問題
預設的 Base64 解碼函數需要純圖像數據,但 base64 字串中存在的額外元數據會破壞解碼過程。這會導致嘗試顯示或儲存時影像無效。
解決方案:解碼前刪除元資料
要解決此問題,請修改轉換函數以分割逗號字串並提取實際影像資料。下面修改後的函數可以有效地處理這種情況:
function base64_to_jpeg($base64_string, $output_file) { // Open the output file for writing $ifp = fopen($output_file, 'wb'); // Split the string on commas // $data[0] == "data:image/png;base64" // $data[1] == <actual base64 string> $data = explode(',', $base64_string); // Validate that the string is in the correct format if (count($data) < 2) { throw new InvalidArgumentException("Invalid base64 string"); } // Extract and decode the actual image data fwrite($ifp, base64_decode($data[1])); // Clean up the file resource fclose($ifp); return $output_file; }
以上是如何在 PHP 中正確地將 Base64 圖像字串轉換為 JPEG 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!