首頁 > 後端開發 > php教程 > 在 PHP 中將 Data-URI 轉換為檔案時如何修復損壞的影像?

在 PHP 中將 Data-URI 轉換為檔案時如何修復損壞的影像?

DDD
發布: 2024-10-23 08:52:29
原創
1047 人瀏覽過

How to Fix Corrupted Images When Converting Data-URIs to Files in PHP?

PHP 資料URI 到檔案:損壞的影像

在Web 開發中,通常會遇到從JavaScript 接收資料作為資料-URI 。其中一個場景涉及使用 PHP 將此 URI 儲存到檔案中。但是,一些使用者報告使用以下程式碼嘗試此操作後收到損壞的映像檔:

<code class="php">$data = $_POST['logoImage'];
$uri = substr($data,strpos($data,",")+1);
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>
登入後複製

此問題源自於某些JavaScript 函數(例如canvas.toDataURL())將空白編碼為百分比( %)。但是,PHP base64_decode 函數需要加號 ( )。

要解決此問題,必須修改程式碼以在解碼資料URI 之前將所有空格替換為加號:

<code class="php">// Replace spaces with pluses
$encodedData = str_replace(' ','+',$data);
// Decode the modified data-URI
$uri = substr($encodedData,strpos($encodedData,",")+1);
// Save the decoded data-URI as a file
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>
登入後複製

透過實施此修改,程式碼將正確解碼並從JavaScript接收的Data-URI,從而產生完整的影像檔案。

以上是在 PHP 中將 Data-URI 轉換為檔案時如何修復損壞的影像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板