Call to undefined function exif_imageType in Laravel [SOLUCIONADO]

¿Encuentras un problema con exif_imageType() en Laravel?

En nuestro día a día como programadores nos encontramos con diversos problemas, uno de ellos puede ser el encontrarse con el mensaje de error “Call to undefined function exif_imageType” en nuestro entorno Laravel. Si has buscado una solución y llegaste aquí, te está llegando una buena noticia, ¡has encontrado el artículo correcto!

Error Call to undefined function exif_imageType() en Laravel

Este error es común en sistemas que no tienen habilitada la extensión EXIF en el servidor PHP. La función exif_imageType() se usa para determinar el tipo de imagen que se está manejando, basándose en los primeros bytes de la misma.

Solución al problema exif_imageType()

Para solucionar este error, necesitamos habilitar la extensión EXIF en nuestro servidor. Aquí mostraremos cómo habilitarla en un servidor LAMP (Linux, Apache, MySQL y PHP).

sudo apt update
sudo apt upgrade
sudo apt install php-exif
sudo systemctl restart apache2

Luego de esto, si vuelves a probar tu código en Laravel, no deberías enfrentarte al problema de la función exif_imageType() indefinida.

Código de ejemplo

A continuación, prestaremos un ejemplo de cómo se utiliza exif_imageType() en un código Laravel típico.

public function uploadImage(Request $request)
{
  $image = $request->file('file');
  $type = exif_imageType($image);

  if(in_array($type, [IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_BMP]))
  {
    $filename = $request->file('file')->getClientOriginalName();
    $path = $request->file('file')->store('images');
    $file = File::create(['name' => $filename, 'path' => $path]);
     
    return response()->json(['fileId' => $file->id]);
  }
  else
  {
    return response()->json(['error' => 'Invalid File Type']);
  }
}

¡Eso es! Con esos pasos y el código de ejemplo, te has armado de las herramientas necesarias para manejar correctamente la función exif_imageType() en tu entorno de Laravel.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad