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.