将 Data-URI 转换为 PHP 中的文件
当负责保存从 JavaScript 获取的数据 URI 时,会出现一个常见问题:生成的图像文件似乎已损坏。当使用类似于以下的代码时,经常会出现此问题:
$data = $_POST['logoImage']; $uri = substr($data,strpos($data,",")+1); file_put_contents($_POST['logoFilename'], base64_decode($uri));
要解决此问题,请查阅 PHP 手册,您将在其中找到以下见解:
“如果您想要保存从 Javascript canvas.toDataURL() 函数派生的数据,您必须将空格转换为加号,如果不这样做,则解码的数据会损坏:“
$encodedData = str_replace(' ','+',$encodedData); $decodedData = base64_decode($encodedData);
在此示例中, 'encodedData' 变量是从 JavaScript 获取的数据 URI 字符串。用加号 (' ') 替换空格 (' ') 可纠正解码过程中可能发生的任何损坏。然后可以使用提供的 file_put_contents 函数成功保存解码的数据。
以上是如何在 PHP 中正确地将数据 URI 保存为文件的详细内容。更多信息请关注PHP中文网其他相关文章!