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.4
si usa PHP 5.3
entonces 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.