Validator::extend('base64image', function ($attribute, $value, $parameters, $validator) { $explode = explode(',', $value); $allow = ['png', 'jpg', 'svg']; $format = str_replace( [ 'data:image/', ';', 'base64', ], [ '', '', '', ], $explode[0] ); // check file format if (!in_array($format, $allow)) { return false; } // check base64 format if (!preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $explode[1])) { return false; } return true; });