"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo resolver problemas de imágenes dañadas al convertir URI de datos en un archivo en PHP?

¿Cómo resolver problemas de imágenes dañadas al convertir URI de datos en un archivo en PHP?

Publicado el 2024-11-09
Navegar:270

How to Resolve Corrupted Image Issues When Converting Data-URI to File in PHP?

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.

Declaración de liberación Este artículo se reimprime en: 1729644498 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

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