From 014886a2cd74f1f54c1df2f54108df57a1286616 Mon Sep 17 00:00:00 2001 From: LaHiRu Date: Tue, 24 May 2022 14:48:56 +0530 Subject: [PATCH] storage fixes --- Controller/MediaController.php | 110 ------------------------ Controller/MediaControllerInterface.php | 20 ----- config/nova-tinymce5-editor.php | 13 ++- src/Controller/MediaController.php | 29 ++++--- 4 files changed, 26 insertions(+), 146 deletions(-) delete mode 100644 Controller/MediaController.php delete mode 100644 Controller/MediaControllerInterface.php diff --git a/Controller/MediaController.php b/Controller/MediaController.php deleted file mode 100644 index 85402c1..0000000 --- a/Controller/MediaController.php +++ /dev/null @@ -1,110 +0,0 @@ -latest()->paginate(); - - return $images->through(function ($itm) { - return [ - 'id' => $itm->id, - 'name' => $itm->name, - 'preview_url' => $this->getImageUrl($itm->file_name), - 'image_url' => $this->getImageUrl($itm->file_name), - 'size' => $this->sizeFilter($itm->file_size) - ]; - }); - } - - public function searchImages(string $query) - { - $images = DB::table('tinymce_images')->where('name', 'like', "$query%")->take(10)->get(); - - return $images->map(function ($itm) { - return [ - 'id' => $itm->id, - 'name' => $itm->name, - 'preview_url' => $this->getImageUrl($itm->file_name), - 'image_url' => $this->getImageUrl($itm->file_name), - 'size' => $this->sizeFilter($itm->file_size) - ]; - }); - } - - public function uploadImage(Request $request) - { - if ($request->hasFile('images')) { - $out = []; - foreach ($request->file('images') as $file){ - - $fileName = Str::random() . "." . $file->getClientOriginalExtension(); - $file->storeAs(config('nova-tinymce5-editor.options.storage_path'), $fileName); - - $rec = DB::table('tinymce_images')->insertGetId([ - 'name' => $file->getClientOriginalName(), - 'file_name' => $fileName, - 'file_size' => $file->getSize(), - 'disk' => config('filesystems.default'), - 'created_at' => now() - ]); - - $rec = DB::table('tinymce_images')->find($rec); - - $out[] = [ - 'id' => $rec->id, - 'name' => $file->getClientOriginalName(), - 'preview_url' => $this->getImageUrl($rec->file_name), - 'image_url' => $this->getImageUrl($rec->file_name), - 'size' => $this->sizeFilter($rec->file_size) - ]; - - } - - return $out; - } - - return []; - } - - - public function deleteImages(Request $request) - { - foreach ($request->get('images') as $img) { - $file = DB::table('tinymce_images')->where('id', $img)->first(); - // remove file from storage - Storage::delete(config('nova-tinymce5-editor.options.storage_path')."/".$file->file_name); - // remove db entry - DB::table('tinymce_images')->delete($img); - } - - return response()->json("Succesfuly deleted !"); - } - - - - - private function sizeFilter($bytes) - { - $label = array('B', 'KB', 'MB', 'GB', 'TB', 'PB'); - for ( - $i = 0; - $bytes >= 1024 && $i < (count($label) - 1); - $bytes /= 1024, $i++ - ); - return (round($bytes, 2) . " " . $label[$i]); - } - - private function getImageUrl($image) - { - return Storage::disk(config('nova-tinymce5-editor.options.disk'))->url(config('nova-tinymce5-editor.options.storage_path' ). $image); - } -} diff --git a/Controller/MediaControllerInterface.php b/Controller/MediaControllerInterface.php deleted file mode 100644 index ec8b9e0..0000000 --- a/Controller/MediaControllerInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - env('TINYMCE_API_KEY', ''), - 'storage_path' => 'tinymce', - 'image_url_path' => '/storage/tinymce/', + /* + |-------------------------------------------------------------------------- + | Images related setup + |-------------------------------------------------------------------------- + | + */ + + 'storage_path' => 'tinymce/', + + 'disk' => env('FILESYSTEM_DRIVER','local'), 'media_handler' => \Kraftbit\NovaTinymce5Editor\Controller\MediaController::class ], ]; + diff --git a/src/Controller/MediaController.php b/src/Controller/MediaController.php index e84069e..c9103eb 100644 --- a/src/Controller/MediaController.php +++ b/src/Controller/MediaController.php @@ -18,8 +18,8 @@ public function getImages(Request $request) return [ 'id' => $itm->id, 'name' => $itm->name, - 'preview_url' => url(config('nova-tinymce5-editor.options.image_url_path') . $itm->file_name), - 'image_url' => url(config('nova-tinymce5-editor.options.image_url_path') . $itm->file_name), + 'preview_url' => $this->getImageUrl($itm->file_name), + 'image_url' => $this->getImageUrl($itm->file_name), 'size' => $this->sizeFilter($itm->file_size) ]; }); @@ -33,8 +33,8 @@ public function searchImages(string $query) return [ 'id' => $itm->id, 'name' => $itm->name, - 'preview_url' => url(config('nova-tinymce5-editor.options.image_url_path') . $itm->file_name), - 'image_url' => url(config('nova-tinymce5-editor.options.image_url_path') . $itm->file_name), + 'preview_url' => $this->getImageUrl($itm->file_name), + 'image_url' => $this->getImageUrl($itm->file_name), 'size' => $this->sizeFilter($itm->file_size) ]; }); @@ -47,13 +47,13 @@ public function uploadImage(Request $request) foreach ($request->file('images') as $file){ $fileName = Str::random() . "." . $file->getClientOriginalExtension(); - $file->storeAs(config('nova-tinymce5-editor.options.storage_path'), $fileName); + $file->storeAs(Str::finish(config('nova-tinymce5-editor.options.storage_path'),"/"), $fileName, ['disk' => config('nova-tinymce5-editor.options.disk')]); $rec = DB::table('tinymce_images')->insertGetId([ 'name' => $file->getClientOriginalName(), 'file_name' => $fileName, 'file_size' => $file->getSize(), - 'disk' => config('filesystems.default'), + 'disk' => config('nova-tinymce5-editor.options.disk'), 'created_at' => now() ]); @@ -62,9 +62,9 @@ public function uploadImage(Request $request) $out[] = [ 'id' => $rec->id, 'name' => $file->getClientOriginalName(), - 'preview_url' => url(config('nova-tinymce5-editor.options.image_url_path') . $fileName), - 'image_url' => url(config('nova-tinymce5-editor.options.image_url_path') . $fileName), - 'size' => $this->sizeFilter($file->getSize()) + 'preview_url' => $this->getImageUrl($rec->file_name), + 'image_url' => $this->getImageUrl($rec->file_name), + 'size' => $this->sizeFilter($rec->file_size) ]; } @@ -75,13 +75,12 @@ public function uploadImage(Request $request) return []; } - public function deleteImages(Request $request) { foreach ($request->get('images') as $img) { $file = DB::table('tinymce_images')->where('id', $img)->first(); // remove file from storage - Storage::delete(config('nova-tinymce5-editor.options.storage_path')."/".$file->file_name); + Storage::disk(config('nova-tinymce5-editor.options.disk'))->delete(config('nova-tinymce5-editor.options.storage_path')."/".$file->file_name); // remove db entry DB::table('tinymce_images')->delete($img); } @@ -89,9 +88,6 @@ public function deleteImages(Request $request) return response()->json("Succesfuly deleted !"); } - - - private function sizeFilter($bytes) { $label = array('B', 'KB', 'MB', 'GB', 'TB', 'PB'); @@ -102,4 +98,9 @@ private function sizeFilter($bytes) ); return (round($bytes, 2) . " " . $label[$i]); } + + private function getImageUrl($image) + { + return Storage::disk(config('nova-tinymce5-editor.options.disk'))->url(config('nova-tinymce5-editor.options.storage_path' ). $image); + } }