From 45b5a8b6abf17e8148c5f4ec58ea584bcfa0eb2a Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 7 Mar 2023 15:56:36 -0800 Subject: [PATCH] =?UTF-8?q?Catch=20exception=20if=20the=20file=20can?= =?UTF-8?q?=E2=80=99t=20be=20handled=20via=20Intervention?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: snipe --- app/Http/Requests/ImageUploadRequest.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/Http/Requests/ImageUploadRequest.php b/app/Http/Requests/ImageUploadRequest.php index 6fb6ead210..b3cd6e102c 100644 --- a/app/Http/Requests/ImageUploadRequest.php +++ b/app/Http/Requests/ImageUploadRequest.php @@ -7,7 +7,9 @@ use enshrined\svgSanitize\Sanitizer; use Intervention\Image\Facades\Image; use App\Http\Traits\ConvertsBase64ToFiles; use Illuminate\Http\UploadedFile; -use Storage; +use Illuminate\Support\Facades\Storage; +use Intervention\Image\Exception\NotReadableException; + class ImageUploadRequest extends Request { @@ -106,10 +108,18 @@ class ImageUploadRequest extends Request \Log::debug('Not an SVG or webp - resize'); \Log::debug('Trying to upload to: '.$path.'/'.$file_name); - $upload = Image::make($image->getRealPath())->resize(null, $w, function ($constraint) { - $constraint->aspectRatio(); - $constraint->upsize(); - }); + try { + $upload = Image::make($image->getRealPath())->resize(null, $w, function ($constraint) { + $constraint->aspectRatio(); + $constraint->upsize(); + }); + } catch(NotReadableException $e) { + \Log::debug($e); + $validator = \Validator::make([], []); + $validator->errors()->add($form_fieldname, trans('general.unaccepted_image_type', ['mimetype' => $image->getClientMimeType()])); + + throw new \Illuminate\Validation\ValidationException($validator); + } // This requires a string instead of an object, so we use ($string) Storage::disk('public')->put($path.'/'.$file_name, (string) $upload->encode());