PHP Data-URI 到檔案:解決損壞的影像問題
在從Data-URI 轉換為檔案格式期間保持影像資料的完整性至關重要。使用 PHP 的 file_put_contents 函數儲存來自 JavaScript canvas.toDataURL() 呼叫的資料時遇到的常見挑戰是產生的映像損壞。該問題源自於 Data-URI 中存在空格。
PHP 文件提供了解決此問題的簡單方法:
<code class="php">$encodedData = str_replace(' ', '+', $encodedData); $decodedData = base64_decode($encodedData);</code>
透過加號替換空格,解碼後的資料已正確重建,確保影像檔案未損壞。
在您的特定情況下,您正在使用包含 PNG 映像的 Data-URI。以下是將解決方案合併到程式碼中的方法:
<code class="php">// 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);</code>
透過遵循此方法,您可以成功地將 Data-URI 儲存為未損壞的 PNG 檔案。
以上是在 PHP 中將 Data-URI 轉換為檔案時如何解決影像損壞問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!