One Hat Cyber Team
Your IP :
10.30.1.1
Server IP :
103.148.201.5
Server :
Linux web-olt 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
Server Software :
Apache/2.4.52 (Ubuntu)
PHP Version :
8.1.29
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
html
/
Compro-ISP
/
app
/
Http
/
Controllers
/
Edit File:
HomeController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Home; use Illuminate\Support\Str; use Illuminate\Support\Facades\Storage; class HomeController extends Controller { /** * Display a listing of the resource. */ public function index() { $data=Home::first(); return view('v.homepages.home.index',compact('data')); } /** * Show the form for creating a new resource. */ public function create() { return view('v.homepages.home.create'); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $request->validate([ 'description' => 'required|string', 'images1' => 'required|image|mimes:jpeg,png,jpg,gif,webp|max:10048', 'images2' => 'required|image|mimes:jpeg,png,jpg,gif,webp|max:10048', 'images3' => 'required|image|mimes:jpeg,png,jpg,gif,webp|max:10048', ]); $savedImages = []; foreach (['images1', 'images2', 'images3'] as $field) { if ($request->hasFile($field)) { $image = $request->file($field); $originalName = pathinfo($image->getClientOriginalName(), PATHINFO_FILENAME); $extension = $image->getClientOriginalExtension(); $safeName = Str::slug($originalName); $uniqueName = $safeName . '-' . uniqid() . '.' . $extension; if (Storage::disk('public')->exists('images/' . $uniqueName)) { return back()->withErrors([$field => 'File dengan nama tersebut sudah ada.'])->withInput(); } $image->storeAs('images', $uniqueName, 'public'); $savedImages[$field] = $uniqueName; } } // ✅ 4. Simpan ke database Home::create([ 'description' => $request->description, 'images1' => $savedImages['images1'] ?? null, 'images2' => $savedImages['images2'] ?? null, 'images3' => $savedImages['images3'] ?? null, ]); return redirect()->route('homepages.home.index')->with('toast_success', 'Task Created Successfully!'); } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { $data=Home::findOrFail($id); return view('v.homepages.home.edit',compact('data')); } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { $request->validate([ 'description' => 'required|string', 'images1' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:10048', 'images2' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:10048', 'images3' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:10048', ]); $home = Home::findOrFail($id); // 3) Daftar field gambar yang mau di-handle $imageFields = ['images1', 'images2', 'images3']; foreach ($imageFields as $field) { if ($request->hasFile($field)) { $file = $request->file($field); // Nama unik yang aman $originalName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME); $extension = $file->getClientOriginalExtension(); $safeName = Str::slug($originalName) ?: 'image'; $uniqueName = $safeName . '-' . uniqid() . '.' . $extension; // (Opsional) Cek tabrakan nama — kecil kemungkinan karena uniqid() if (Storage::disk('public')->exists('images/' . $uniqueName)) { return back()->withErrors([$field => 'File dengan nama tersebut sudah ada.'])->withInput(); } // Hapus file lama (hanya untuk field yang diupload baru) if (!empty($home->{$field}) && Storage::disk('public')->exists('images/' . $home->{$field})) { Storage::disk('public')->delete('images/' . $home->{$field}); } // Simpan file baru $file->storeAs('images', $uniqueName, 'public'); // Set nama file baru ke kolom terkait $home->{$field} = $uniqueName; } // Jika TIDAK ada upload untuk field ini → tidak melakukan apa-apa, // sehingga nilai lama di DB tetap dipertahankan (tidak terganti). } // 4) Update field lain $home->description = $request->description; // 5) Simpan $home->save(); return redirect()->route('homepages.home.index')->with('toast_success', 'Task Edited Successfully!'); } /** * Remove the specified resource from storage. */ public function destroy(string $id) { $data = Home::findOrFail($id); // Daftar kolom image yang dipakai $imageFields = ['images1', 'images2', 'images3']; foreach ($imageFields as $field) { if (!empty($data->{$field})) { $imagePath = 'public/images/' . $data->{$field}; if (Storage::exists($imagePath)) { Storage::delete($imagePath); } } } // Hapus record di database $data->delete(); return redirect() ->route('homepages.home.index') ->with('toast_warning', 'Task Deleted Successfully!'); } }
Simpan