diff --git a/app/Http/Controllers/Setting/SlideController.php b/app/Http/Controllers/Setting/SlideController.php index 91d61ed51..25bcdff82 100644 --- a/app/Http/Controllers/Setting/SlideController.php +++ b/app/Http/Controllers/Setting/SlideController.php @@ -76,11 +76,9 @@ public function store(SlideRequest $request) if ($request->hasFile('gambar')) { $file = $request->file('gambar'); - $fileName = $file->getClientOriginalName(); - $path = 'storage/slide/'; - $file->move($path, $fileName); - - $input['gambar'] = $path.$fileName; + $fileName = $file->hashName(); + $path = $file->storeAs('public/slide', $fileName); + $input['gambar'] = str_replace('public/', 'storage/', $path); } Slide::create($input); } catch (\Exception $e) { @@ -94,7 +92,7 @@ public function store(SlideRequest $request) public function show(Slide $slide) { - $page_title = 'Detail Slide :'.$slide->judul; + $page_title = 'Detail Slide :' . $slide->judul; return view('setting.slide.show', compact('page_title', 'page_description', 'slide')); } @@ -102,7 +100,7 @@ public function show(Slide $slide) public function edit(Slide $slide) { $page_title = 'Slide'; - $page_description = 'Ubah Slide : '.$slide->judul; + $page_description = 'Ubah Slide : ' . $slide->judul; return view('setting.slide.edit', compact('page_title', 'page_description', 'slide')); } @@ -114,12 +112,9 @@ public function update(SlideRequest $request, Slide $slide) if ($request->hasFile('gambar')) { $file = $request->file('gambar'); - $fileName = $file->getClientOriginalName(); - $path = 'storage/slide/'; - $file->move($path, $fileName); - unlink(base_path('public/'.$slide->gambar)); - - $input['gambar'] = $path.$fileName; + $fileName = $file->hashName(); + $path = $file->storeAs('public/slide', $fileName); + $input['gambar'] = str_replace('public/', 'storage/', $path); } $slide->update($input); } catch (\Exception $e) { @@ -134,9 +129,7 @@ public function update(SlideRequest $request, Slide $slide) public function destroy(Slide $slide) { try { - if ($slide->delete()) { - unlink(base_path('public/'.$slide->gambar)); - } + $slide->delete(); } catch (\Exception $e) { report($e); diff --git a/app/Models/Slide.php b/app/Models/Slide.php index 491d28a42..134056752 100644 --- a/app/Models/Slide.php +++ b/app/Models/Slide.php @@ -31,6 +31,7 @@ namespace App\Models; +use Illuminate\Support\Facades\Log; use Illuminate\Database\Eloquent\Model; class Slide extends Model @@ -42,4 +43,25 @@ class Slide extends Model 'judul', 'deskripsi', ]; + + public static function booted() + { + static::updating(function ($model) { + static::deleteImg($model); + }); + + static::deleting(function ($model) { + static::deleteImg($model, true); + }); + } + + protected static function deleteImg($model, $deleting = false) + { + if ($model->isDirty('gambar') || $deleting) { + $slidePath = public_path($model->getOriginal('gambar')); + if (file_exists($slidePath)) { + unlink($slidePath); + } + } + } } diff --git a/catatan_rilis.md b/catatan_rilis.md index 101261d07..7886b8cb9 100644 --- a/catatan_rilis.md +++ b/catatan_rilis.md @@ -14,6 +14,7 @@ Terima kasih pada @uddinmtm telah ikut berkontribusi. 3. [#1002](https://github.com/OpenSID/OpenDK/issues/1002) Fix Error Statistik Pendidikan 4. [#1008](https://github.com/OpenSID/OpenDK/issues/1008) Perbaikan error tidak bisa mengirim keluhan di sikema. 5. [#985](https://github.com/OpenSID/OpenDK/issues/985) Perbaikan navigasi default +6. [#990](https://github.com/OpenSID/OpenDK/issues/990) Perbaikan error ketika hapus slide tanpa gambar #### TEKNIS