Saltar al contenido

Validar una imagen decodificada en base64 en laravel

Tenemos la solución a este atascamiento, o por lo menos eso esperamos. Si sigues con inquietudes deja tu comentario, que sin tardanza

Solución:

Si está utilizando Intervención de todos modos, puede aprovecharla para una regla de validación personalizada. Tengo uno llamado “imagenable”. Básicamente, se asegura de que la entrada proporcionada se pueda convertir en una imagen de intervención. Las cadenas de imágenes de datos Base64 pasarán. A string de “foo” no lo hará.

Validator::extend('imageable', function ($attribute, $value, $params, $validator) 
    try 
        ImageManagerStatic::make($value);
        return true;
     catch (Exception $e) 
        return false;
    
);

Obviamente, esto solo verifica que la entrada se pueda convertir en una imagen. Sin embargo, debería mostrarle como un caso de uso cómo puede aprovechar la Intervención y cualquiera de sus métodos para crear una regla personalizada.

Puede extender la clase Validator de Laravel.

Documento de Laravel

Pero de todos modos prueba esto

Validator::extend('is_png',function($attribute, $value, $params, $validator) 
    $image = base64_decode($value);
    $f = finfo_open();
    $result = finfo_buffer($f, $image, FILEINFO_MIME_TYPE);
    return $result == 'image/png';
);

No olvides las reglas:

$rules = array(
   'image' => 'is_png'
);

Reseñas y puntuaciones

Recuerda que tienes autorización de añadir un criterio justo si diste con el arreglo.

¡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 *