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