diff --git a/app/Rules/Base64Mime.php b/app/Rules/Base64Mime.php index 2e70fc15..35fd8384 100644 --- a/app/Rules/Base64Mime.php +++ b/app/Rules/Base64Mime.php @@ -32,11 +32,18 @@ class Base64Mime implements Rule $this->attribute = $attribute; try { - $data = json_decode($value)->data; + $decoded = json_decode(trim($value)); + $name = !empty($decoded->name) ? $decoded->name : ''; + $data = !empty($decoded->data) ? $decoded->data : ''; } catch (\Exception $e) { return false; } + $extension = pathinfo($name, PATHINFO_EXTENSION); + if(!in_array($extension, $this->extensions)) { + return false; + } + $pattern = '/^data:\w+\/[\w\+]+;base64,[\w\+\=\/]+$/'; if (! preg_match($pattern, $data)) {