X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/3656/head:/app/Http/Controllers/Images/ImageController.php diff --git a/app/Http/Controllers/Images/ImageController.php b/app/Http/Controllers/Images/ImageController.php index ecc36bf67..21ed58553 100644 --- a/app/Http/Controllers/Images/ImageController.php +++ b/app/Http/Controllers/Images/ImageController.php @@ -1,53 +1,57 @@ -image = $image; - $this->file = $file; $this->imageRepo = $imageRepo; + $this->imageService = $imageService; } /** * Provide an image file from storage. + * + * @throws NotFoundException */ public function showImage(string $path) { - $path = storage_path('uploads/images/' . $path); - if (!file_exists($path)) { - abort(404); + if (!$this->imageService->pathExistsInLocalSecure($path)) { + throw (new NotFoundException(trans('errors.image_not_found'))) + ->setSubtitle(trans('errors.image_not_found_subtitle')) + ->setDetails(trans('errors.image_not_found_details')); } - return response()->file($path); + return $this->imageService->streamImageFromStorageResponse('gallery', $path); } - /** - * Update image details + * Update image details. + * * @throws ImageUploadException * @throws ValidationException */ public function update(Request $request, string $id) { $this->validate($request, [ - 'name' => 'required|min:2|string' + 'name' => ['required', 'min:2', 'string'], ]); $image = $this->imageRepo->getById($id); @@ -57,14 +61,16 @@ class ImageController extends Controller $image = $this->imageRepo->updateImageDetails($image, $request->all()); $this->imageRepo->loadThumbs($image); - return view('components.image-manager-form', [ - 'image' => $image, + + return view('pages.parts.image-manager-form', [ + 'image' => $image, 'dependantPages' => null, ]); } /** * Get the form for editing the given image. + * * @throws Exception */ public function edit(Request $request, string $id) @@ -77,14 +83,16 @@ class ImageController extends Controller } $this->imageRepo->loadThumbs($image); - return view('components.image-manager-form', [ - 'image' => $image, + + return view('pages.parts.image-manager-form', [ + 'image' => $image, 'dependantPages' => $dependantPages ?? null, ]); } /** - * Deletes an image and all thumbnail/image files + * Deletes an image and all thumbnail/image files. + * * @throws Exception */ public function destroy(string $id) @@ -94,6 +102,7 @@ class ImageController extends Controller $this->checkImagePermission($image); $this->imageRepo->destroyImage($image); + return response(''); }