News

Loading...

Community Links

Laravel Jobs

Latest News

Loading...

Latest Partners

Loading...

Partners

Loading...

Tutorial Laravel File Upload: Cara Mengupload dan Menyimpan File dengan Aman




Laravel menyediakan filesystem abstraction yang powerful untuk menghandle file uploads dengan mudah dan aman. Tutorial ini akan membahas lengkap cara mengupload file menggunakan Laravel Storage, validasi file, dan menyimpannya dengan benar.

Laravel Storage terletak di storage/app dan menyediakan berbagai driver seperti local, s3, ftp, sftp, dan rackspace. Untuk development, driver local sudah cukup. Untuk production, driver s3 sangat direkomendasikan karena lebih reli

able dan scalable.

Untuk membuat form upload, gunakan enctype="multipart/form-data" pada tag form. Contoh form sederhana adalah

. Tanpa enctype ini, file tidak akan terkirim ke server dengan benar.

Di controller, file yang diupload dapat diakses melalui $request->file('nama_field') atau $request->nama_field. Metode isValid() memastikan file terupload dengan benar. Untuk mendapatkan original filename, gunakan getClientOriginalName(). Untuk extension, gunakan getClientOriginalExtension().

Validasi file upload sangat penting untuk keamanan. Gunakan Laravel validation rules seperti required, file, mimes dengan daftar extension yang diperbolehkan, max untuk size dalam kilobytes. Contohnya adalah 'document' => 'required|file|mimes:pdf,doc,docx|max:2048' yang berarti file wajib ada, harus file, hanya pdf/doc/docx, maksimal 2MB.

Untuk menyimpan file ke local storage, gunakan metode store(). Metode ini menerima path tujuan dan nama file secara opsional. Contoh menyimpan file adalah $request->file('document')->store('documents', 'public'); yang menyimpan file ke storage/app/public/documents dengan nama unik.

Laravel juga menyediakan metode storeAs() untuk kontrol lebih atas nama file. Gunakan $request->file('document')->storeAs('documents', $filename); untuk menyimpan dengan nama spesifik. Untuk generate nama unik, gunakan Str::random() atau UUID.

Untuk mendownload file, gunakan metode download(). Contoh return response adalah return storage::download('documents/filename.pdf', 'nama-file.pdf', ['Content-Disposition' => 'attachment']);. Atau gunakan method route() untuk generate URL download.

Untuk menghapus file, gunakan metode delete(). Contohnya adalah storage::delete('documents/filename.pdf');. Pastikan untuk handle case dimana file tidak ada agar tidak terjadi error.

Untuk menggunakan S3, install package league/flysystem-aws-s3-v3 dengan composer, kemudian konfigurasi credentials di file .env. Setelah itu, Anda dapat menggunakan driver s3 dengan mengganti argument store dari public ke s3.

Image manipulation dapat dilakukan dengan intervention/image package. Install dengan composer require intervention/image, kemudian gunakan ImageManager untuk resize, crop, watermark, dan berbagai operasi图像 lain pada file gambar yang diupload.

Tidak ada komentar:

Posting Komentar

Most Read

Loading...

Tutorial

Loading...

Packages

Loading...