
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
Posting Komentar