Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Laravel #31: Hapus File dengan Laravel

Tentu, berikut adalah artikel mengenai tutorial menghapus file dengan Laravel.


 

 

Pada tutorial sebelumnya, kita telah berhasil mengunggah file ke server menggunakan Laravel. Namun, dalam aplikasi nyata, kemampuan untuk mengelola file—termasuk menghapusnya—juga sangat penting. Proses menghapus file di Laravel sama mudahnya dengan mengunggahnya, berkat facade Storage yang tangguh.

Pada tutorial ini, kita akan belajar cara menghapus file yang tersimpan di direktori storage/app/public secara aman dan efisien.


 

1. Memahami Metode Storage::delete()

 

Laravel menyediakan metode delete() yang merupakan bagian dari facade Storage untuk menghapus file dari disk yang telah dikonfigurasi.

Metode ini mengambil satu parameter, yaitu jalur file relatif dari root disk. Misalnya, jika file kamu berada di storage/app/public/uploads/dokumen.pdf, jalur yang perlu kamu berikan ke metode delete() adalah 'uploads/dokumen.pdf'.

PHP

// Sintaks dasar untuk menghapus file
Storage::disk('public')->delete('path/to/file.jpg');

 

2. Menyiapkan Controller dan Route

 

Untuk menghapus file, kita membutuhkan sebuah controller dan route yang akan menangani permintaan penghapusan dari pengguna. Kita akan melanjutkan dari contoh tutorial sebelumnya dan membuat method baru di FileUploadController.

 

A. Menambahkan Route

 

Buka file routes/web.php dan tambahkan route baru untuk aksi penghapusan.

PHP

// routes/web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FileUploadController;

// ... (route upload dari tutorial sebelumnya)

// Route untuk menghapus file
// Perhatikan: Menggunakan parameter 'filename' untuk identifikasi
Route::get('/delete/{filename}', [FileUploadController::class, 'deleteFile'])->name('file.delete');

Catatan: Dalam aplikasi produksi, disarankan menggunakan metode DELETE atau POST dengan perlindungan CSRF untuk menghapus data, bukan GET, demi alasan keamanan. Namun, untuk contoh tutorial, GET lebih sederhana untuk diuji.

 

B. Membuat Metode di Controller

 

Sekarang, tambahkan method deleteFile di app/Http/Controllers/FileUploadController.php.

PHP

// app/Http/Controllers/FileUploadController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class FileUploadController extends Controller
{
    // ... (method showUploadForm dan uploadFile dari tutorial sebelumnya)

    /**
     * Menghapus file dari storage.
     *
     * @param  string  $filename
     * @return \Illuminate\Http\RedirectResponse
     */
    public function deleteFile($filename)
    {
        // 1. Tentukan path file
        $filePath = 'uploads/' . $filename;

        // 2. Periksa apakah file ada
        if (Storage::disk('public')->exists($filePath)) {
            // 3. Jika file ada, hapus
            Storage::disk('public')->delete($filePath);
            
            return redirect()->back()->with('success', 'File berhasil dihapus!');
        }

        return redirect()->back()->with('error', 'File tidak ditemukan!');
    }
}

Penjelasan Kode Controller:

  • Metode deleteFile() menerima $filename yang berasal dari parameter route.
  • $filePath = 'uploads/' . $filename; menggabungkan nama file dengan nama direktori tempat file disimpan, membentuk jalur lengkap.
  • Storage::disk('public')->exists($filePath) adalah langkah krusial. Ini memeriksa apakah file benar-benar ada sebelum mencoba menghapusnya, mencegah aplikasi mengalami error jika file yang dimaksud tidak ditemukan.
  • Storage::disk('public')->delete($filePath) adalah perintah utama untuk menghapus file.

 

3. Contoh Praktik: Menghapus File

 

Karena kita tidak memiliki daftar file yang diunggah di tampilan, kita akan membuat contoh sederhana dengan menghapus file yang sudah ada. Asumsikan kamu sudah mengunggah file bernama my_uploaded_file.jpg melalui tutorial sebelumnya.

  1. Pastikan development server Laravel berjalan:
    Bash

    php artisan serve
    
  2. Buka browser kamu dan kunjungi URL berikut:
    http://127.0.0.1:8000/delete/my_uploaded_file.jpg
    

    Ganti my_uploaded_file.jpg dengan nama file yang benar yang ada di direktori storage/app/public/uploads kamu.

  3. Setelah mengakses URL tersebut, kamu akan dialihkan kembali ke halaman sebelumnya dengan pesan sukses.
  4. Periksa direktori storage/app/public/uploads kamu. File yang kamu sebutkan seharusnya sudah tidak ada lagi.

 

4. Menangani File yang Terhubung ke Database

 

Dalam banyak kasus, kamu mungkin menyimpan informasi file (seperti nama, ukuran, dan jalur) di database. Dalam situasi ini, proses penghapusan harus mencakup dua langkah:

  1. Hapus file dari storage.
  2. Hapus catatan/rekaman file dari database.
PHP

// Contoh ilustrasi dalam controller
use App\Models\File; // Asumsikan kamu punya model File

public function deleteAndRemoveRecord(File $file)
{
    // Hapus file dari storage terlebih dahulu
    Storage::disk('public')->delete($file->path);

    // Hapus record dari database
    $file->delete();

    return redirect()->back()->with('success', 'File dan record berhasil dihapus!');
}

Dengan menguasai metode Storage::delete(), kamu sekarang bisa mengelola file di aplikasi Laravel kamu dengan lebih baik, memberikan fungsionalitas upload dan hapus yang lengkap dan aman.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_q0o3sbq0o3sbq0o3
Gemini_Generated_Image_mem6cgmem6cgmem6
Gemini_Generated_Image_ust09gust09gust0
Gemini_Generated_Image_d8a5kwd8a5kwd8a5

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek