Unggah File Laravel: Tutorial Langkah-demi-Langkah yang Komprehensif

Diterbitkan: 2024-10-07

Daftar isi

Beralih

Unggah File Laravel

Pengunggahan file adalah fitur penting di banyak aplikasi web, memungkinkan pengguna mengunggah berbagai jenis file, seperti gambar, dokumen, atau video. Laravel, framework PHP yang populer, menawarkan cara yang lancar dan aman untuk menangani upload file. Dalam tutorial ini, kita akan mempelajari cara mengatur dan mengimplementasikan upload file di Laravel dari awal. Baik Anda seorang pengembang pemula atau menengah, panduan ini akan membantu Anda menguasai pengunggahan file di Laravel.

1. Pengenalan Pengunggahan File Laravel

Unggahan file merupakan bagian integral dari aplikasi web modern. Baik itu mengunggah gambar profil, resume, atau konten multimedia, memiliki sistem unggah file yang andal dan aman sangatlah penting. Laravel, dengan fungsi bawaannya, menjadikan proses ini mudah dan efisien. Dengan dukungan untuk validasi, penyimpanan, dan keamanan file, Laravel menawarkan cara yang mulus untuk mengelola unggahan file.

Dalam tutorial ini, kita akan:

  • Buat formulir unggah file.
  • Menangani validasi file.
  • Simpan file di server.
  • Tampilkan file yang diunggah.
  • Amankan proses pengunggahan file.

Di akhir panduan ini, Anda akan memiliki pemahaman yang kuat tentang cara mengimplementasikan dan menyesuaikan unggahan file di aplikasi Laravel.

2. Prasyarat

Sebelum masuk ke tutorial, pastikan yang berikut ini diinstal pada mesin Anda:

  • PHP >= 8.0
  • Komposer(Manajer Ketergantungan untuk PHP)
  • Laravel 9 atau lebih tinggi
  • MySQL atau SQLiteuntuk manajemen database
  • Pengetahuan dasar tentang Laravel dan PHP

Jika Anda tidak terbiasa dengan cara mengatur Laravel, lihat dokumentasi resmi Laravel atau gunakan perintah berikut untuk membuat proyek Laravel baru:

pesta

Salin kode

composer create-project –prefer-dist laravel/tutorial unggah file laravel

Setelah proyek dibuat, navigasikan ke folder proyek:

pesta

Salin kode

cd file-upload-tutorial

3. Menyiapkan Proyek Laravel

Setelah proyek Laravel Anda siap, mari konfigurasikan pengaturan dasar:

Konfigurasi Basis Data:Buka file .env di direktori root dan perbarui kredensial basis data Anda. Jika Anda menggunakan MySQL, perbarui kolom berikut:
teks biasa
Salin kode
DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=laravel_upload

DB_USERNAME=akar

DB_PASSWORD=

Setelah mengonfigurasi file .env , jalankan perintah berikut untuk memigrasikan tabel default:
pesta
Salin kode
migrasi tukang php

A. Instal Bootstrap (Opsional)

Untuk menata formulir unggahan, Anda dapat menyertakan Bootstrap untuk kemudahan. Di folder resources/views/layouts , buat file layout.blade.php dan sertakan Bootstrap:

html
Salin kode
<!DOCTYPEhtml>

<html lang=”id”>

<kepala>

<meta charset=”UTF-8″>

<meta name=”viewport” content=”width=lebar perangkat, skala awal=1,0″>

<title>Tutorial Mengunggah File</title>

<link href=”https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css” rel=”stylesheet”>

</kepala>

<tubuh>

<div class=”wadah mt-5″>

@hasil('isi')

</div>

</tubuh>

</html>

4. Membuat Form Upload File

Sekarang, mari buat formulir unggah file.

Buat Pengontrol:Buat pengontrol untuk menangani unggahan file:
pesta
Salin kode
tukang php make:controller FileUploadController

Tentukan Formulir:Pada folder resources/views , buat file bernama upload.blade.php dengan kode berikut:
html
Salin kode
@extends('tata letak.tata letak')

@bagian('isi')

<div kelas=”baris”>

<div class=”col-md-6 offset-md-3″>

<h3 class=”text-center”>Unggah File</h3>

<form action=”{{ rute('file.upload.post') }}” method=”POST” enctype=”multipart/form-data”>

@csrf

<div class=”grup formulir mb-3″>

<label for=”file”>Pilih file:</label>

<input type=”file” class=”kontrol formulir” nama=”file” id=”file”>

@kesalahan('file')

<small class=”text-danger”>{{ $message }}</small>

@enderror

</div>

<button type=”submit” class=”btn btn-primary”>Unggah</button>

</bentuk>

</div>

</div>

@bagian akhir

Atur Rute:Di file rute/web.php , tentukan rute untuk menampilkan formulir dan menangani unggahan file:
php
Salin kode
gunakan App\Http\Controllers\FileUploadController;

Rute::dapatkan('unggah', [FileUploadController::kelas, 'showForm'])->nama('file.unggah');

Rute::post('upload', [FileUploadController::class, 'uploadFile'])->nama('file.upload.post');

5. Menangani Logika Pengunggahan File

Di FileUploadController.php , tulis logika untuk menangani proses upload file:

Tunjukkan Formulir:
php
Salin kode
fungsi publik showForm() {

tampilan kembali('unggah');

}

Menangani Unggahan File:
Di pengontrol yang sama, tambahkan metode berikut untuk menangani unggahan file:
php
Salin kode
fungsi publik uploadFile(Permintaan $permintaan) {

// Validasi file yang diunggah

$permintaan->validasi([

'file' => 'diperlukan|file|mimes:jpeg,png,pdf,docx|max:2048',

]);

// Simpan filenya

if ($permintaan->file('file')) {

$namafile = waktu() . '_' . $permintaan->file->getClientOriginalName();

$filePath = $request->file('file')->storeAs('uploads', $fileName, 'public');

}

return back()->with('success', 'File berhasil diunggah.');

}

Metode ini melakukan validasi file, memeriksa apakah file tersebut ada, dan menyimpannya menggunakan metode storeAs .

6. Memvalidasi Upload File

Validasi sangat penting untuk memastikan bahwa pengguna hanya mengunggah jenis dan ukuran file yang diizinkan. Metode validasi Laravel menyederhanakan proses ini. Aturan validasi yang digunakan di sini adalah:

  • diperlukan : Memastikan file diunggah.
  • file : Memastikan item yang diunggah adalah file.
  • mimes : Menentukan jenis file yang diperbolehkan (misal, jpeg, png, pdf, docx).
  • max : Menentukan ukuran file maksimum dalam kilobyte (misal, 2048 KB = 2 MB).

Anda dapat menyesuaikan aturan ini agar sesuai dengan kebutuhan aplikasi Anda.

7. Menyimpan File

Fasad Penyimpanan Laravel memungkinkan Anda menyimpan file dengan mudah. Pada contoh di atas, kami menggunakan metode storeAs untuk menyimpan file di direktori public/uploads . Agar folder publik/unggahan dapat diakses, Anda perlu menghubungkan direktori penyimpanan dengan folder publik. Jalankan perintah berikut:

pesta

Salin kode

penyimpanan tukang php: tautan

Perintah ini membuat tautan simbolis dari storage/app/public ke public/storage .

8. Menampilkan File yang Diupload

Untuk menampilkan file yang diunggah, ambil file tersebut dari folder penyimpanan dan buat URL menggunakan fasad Penyimpanan . Berikut cara menampilkan gambar atau file:

Di Pengontrol:
php
Salin kode
fungsi publik showUploads() {

$file = Penyimpanan::disk('publik')->file('upload');

return view('upload', compact('file'));

}

  1. Dalam Tampilan:

Buat file resources/views/uploads.blade.php :
html
Salin kode
@extends('tata letak.tata letak')

@bagian('isi')

<h3>File yang Diunggah:</h3>

<ul>

@foreach($file sebagai $file)

<li><a href=”{{ aset('storage/' . $file) }}”>{{ nama dasar($file) }}</a></li>

@endforeach

</ul>

@bagian akhir

  1. Ini akan menghasilkan daftar file yang diunggah dengan tautan unduhan.

9. Mengamankan Upload File

Pengunggahan file dapat menimbulkan risiko keamanan jika tidak ditangani dengan benar. Berikut beberapa praktik terbaik untuk mengamankan unggahan file:

  • Batasi Jenis File yang Dibolehkan: Selalu validasi jenis file menggunakan aturan mimes .
  • Batasi Ukuran File: Batasi ukuran file untuk mencegah konsumsi sumber daya server yang berlebihan.
  • Gunakan Penamaan File yang Tepat: Simpan file menggunakan nama unik untuk menghindari penimpaan file yang sudah ada.
  • Pindai File: Pertimbangkan untuk menggunakan antivirus atau alat pemindaian file untuk mendeteksi unggahan berbahaya.
  • Batasi Akses Publik: Hindari menyimpan file sensitif di direktori yang dapat diakses publik. Anda dapat menggunakan direktori penyimpanan Laravel untuk file pribadi dan membuat pengontrol untuk menyajikannya dengan aman.

10. Kesimpulan

Pengunggahan file adalah fitur penting bagi banyak aplikasi web, dan Laravel menyederhanakan prosesnya dengan alat dan fungsi bawaannya. Dalam tutorial ini, kami telah membahas dasar-dasar pengaturan unggahan file, memvalidasi dan menyimpan file, menampilkannya, dan mengamankan proses unggahan. Dengan landasan ini, Anda dapat menyesuaikan dan memperluas fungsionalitas pengunggahan file agar sesuai dengan kebutuhan proyek Anda.