PHP Data-URI a archivo: resolución de problemas de imágenes dañadas
Mantener la integridad de los datos de imagen durante la conversión de Data-URI al formato de archivo es crucial. Un desafío común que se encuentra al usar la función file_put_contents de PHP para guardar datos de una llamada JavaScript canvas.toDataURL() es la corrupción de la imagen resultante. El problema surge de la presencia de espacios en blanco en el URI de datos.
La documentación de PHP proporciona una solución sencilla a este problema:
$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);
Al reemplazar los espacios en blanco con signos positivos, los datos decodificados se reconstruyen correctamente, lo que garantiza que el archivo de imagen no esté dañado.
En su caso específico, usted estábamos trabajando con un URI de datos que contenía una imagen PNG. Así es como puede incorporar la solución en su código:
// 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);
Si sigue este enfoque, puede guardar con éxito el URI de datos como un archivo PNG no dañado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3