Langsung ke konten utama

Cara Efektif Menangani Multiple File Upload di Laravel untuk Proyek

Pendahuluan

Bayangin lagi ngerjain fitur sederhana, tapi pas user upload foto profil sekaligus dokumen pendukung, server malah kena memory limit. Saya sering lihat developer baru yang langsung looping file tanpa filter, padahal Laravel punya cara elegan buat handle ini tanpa bikin server ngos-ngosan. Kita akan bedah gimana bikin alur upload yang aman dan efisien.

Tips & Best Practices

Di banyak project, biasanya saya mulai dari validasi array file. Jangan pernah asal simpan sebelum cek ukuran dan extension-nya, karena ini pintu masuk utama serangan malware. Selanjutnya, saya selalu pakai queue buat proses upload yang berat, supaya user nggak nunggu lama di front-end pas proses upload berlangsung. Terakhir, saya lebih suka simpan path file di database ketimbang file-nya langsung, biar struktur storage tetap rapi dan gampang di-migrate.

Contoh Kode

Pas kita butuh handle upload banyak file sekaligus, biasanya kodenya terlihat seperti ini di controller:

public function store(Request $request) { 
    $request->validate(['files.*' => 'required|file|max:2048']); 
    if ($request->hasFile('files')) { 
        foreach ($request->file('files') as $file) { 
            $path = $file->store('uploads', 'public'); 
            // simpan $path ke database di sini 
        } 
    } 
}

Variasi Implementasi

Kalau skalanya kecil, cara di atas cukup. Tapi kalau sudah masuk skala enterprise, saya lebih prefer pake library pihak ketiga kayak spatie/laravel-medialibrary. Ini ngebantu banget biar kita nggak usah pusing urusin resize gambar atau pengelolaan folder yang ribet secara manual.

Kesalahan Umum

Pertama, lupa nambahin attribute enctype='multipart/form-data' di form HTML—ini klasik banget bikin file nggak terkirim. Kedua, ngatur post_max_size di PHP.ini terlalu kecil, akhirnya upload file gede selalu gagal. Ketiga, nggak ngasih nama unik buat file, ujung-ujungnya file baru selalu nimpa file lama. Keempat, terlalu percaya sama client-side validation aja tanpa cek lagi di backend. Kelima, ngebuka akses folder storage secara publik tanpa filter middleware, yang bikin file sensitif bisa diakses orang asing.

Ringkasan

Mengelola multiple upload emang kelihatan menantang, tapi kuncinya ada di validasi dan manajemen storage yang disiplin. Jangan cuma kejar fitur jalan, tapi perhatiin juga gimana server napas pas user lagi rame-ramenya upload file. Happy coding!

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?