Saltar al contenido

Cómo obtener el tamaño de la imagen de la base 64 string en php

La guía paso a paso o código que encontrarás en este post es la resolución más sencilla y efectiva que encontramos a esta duda o problema.

Solución:

Por favor, chequee esto :

Después de decodificar, intente con esto: getimagesizefromstring()si estas con PHP 5.4si usa PHP 5.3entonces puede verificar con el siguiente método.

los getimagesize() la función también debería funcionar con URI de datos:

$Image = "MyBase64StringHere";
$size = getimagesize($Image);

La idea de obtener el tamaño de la imagen antes de pasar a la carpeta no es buena. Entonces decidí mover la imagen a una carpeta temporal y obtener el tamaño usando la ruta de la imagen y luego validar el tamaño de la imagen. Con esto puedo validar fácilmente el tamaño de la imagen y evitar que se almacene en la base de datos si se excede el límite de tamaño. Gracias a todos por su tiempo.

Mi código actualizado es como:

/** if image is attached with request **/
$Image = "Yourbase64StringHere";
list($type, $Image) = explode(';', $Image);
list(, $Image)      = explode(',', $Image);

/** decode the base 64 image **/
$Image = base64_decode($Image);

/* move image to temp folder */
$TempPath = 'temp/'.time().".jpg";
file_put_contents($TempPath, $Image);

$ImageSize = filesize($TempPath);/* get the image size */

if($ImageSize < 83889000) /* limit size to 10 mb */

/** move the uploaded image **/
$path = 'uploads/'.time().".jpg";
file_put_contents($path, $Image);

$Image = $path;
/** get the image path and store in database **/

unlink($TempPath);/* delete the temporay file */

else

unlink($TempPath);/* delete the temporay file */

/** image size limit exceded **/


Te mostramos las comentarios y valoraciones de los usuarios

Finalizando este artículo puedes encontrar las referencias de otros usuarios, tú además tienes el poder mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *