with([ 'message' => __('You do not have permission to do this.'), ]); } return view('logo-generator'); } public function store(Request $request): JsonResponse { $request->validate([ 'logo' => [ 'required', 'image', 'mimes:jpeg,png,gif,webp', 'max:5120', ], ]); $file = $request->file('logo'); $mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file->getPathname()); $allowedMimes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp']; if (! in_array($mime, $allowedMimes, true)) { return response()->json(['success' => false, 'message' => 'Invalid file type.'], 422); } $filename = 'logo_' . Str::random(16) . '.' . $file->getClientOriginalExtension(); $path = $file->storeAs('generated-logos', $filename, 'public'); $setting = WebsiteSetting::where('key', 'cms_logo')->first(); $setting?->update([ 'value' => '/storage/' . $path, ]); return response()->json(['success' => true, 'message' => 'Logo updated!']); } }