PHP Data-URI 到檔案:解決損壞的影像問題
在從Data-URI 轉換為檔案格式期間保持影像資料的檔案格式期間保持影像資料的完整性至關重要。使用 PHP 的 file_put_contents 函數儲存來自 JavaScript canvas.toDataURL() 呼叫的資料時遇到的常見挑戰是產生的映像損壞。該問題源自於 Data-URI 中存在空格。
PHP 文件提供了解決此問題的簡單方法:
$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);
透過加號取代空格,可以正確重建解碼數據,確保影像檔案沒有損壞。
在您的特定情況下,您正在使用包含 PNG 映像的 Data-URI。以下是將解決方案合併到程式碼中的方法:
// Get the base64-encoded URI data from JavaScript
$data = $_POST['logoImage'];
// Remove the leading "data:image/png;base64," part
$uri = substr($data, strpos($data, ',') 1);
// Replace any whitespace with a plus
$uri = str_replace(' ', ' ', $uri);
// Decode the base64-encoded data
$decodedData = base64_decode($uri);
// Save the decoded data to a file with the specified name
file_put_contents($_POST['logoFilename'], $decodedData);
依照這個方法,您可以成功地將 Data-URI 儲存為未損壞的 PNG 檔案。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3