PHP Data-URI 到文件:解决损坏的图像问题
在从 Data-URI 转换为文件格式期间保持图像数据的完整性至关重要。使用 PHP 的 file_put_contents 函数保存来自 JavaScript canvas.toDataURL() 调用的数据时遇到的一个常见挑战是生成的图像损坏。该问题源于 Data-URI 中存在空格。
PHP 文档提供了解决此问题的简单方法:
$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);
通过用加号替换空格,可以正确重建解码数据,确保图像文件没有损坏。
在您的具体情况下,您正在使用包含 PNG 图像的 Data-URI。以下是将解决方案合并到代码中的方法:
// 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);
按照这种方法,您可以成功地将 Data-URI 保存为未损坏的 PNG 文件。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3