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中文网其他相关文章!