| Prime Time

Laravel #30 : Membuat Upload File Laravel

Membuat Upload File Dengan Laravel

Untuk mengikuti tutorial upload file dengan laravel ini, yang harus teman-teman persiapkan adalah sebuah project laravel. jadi pastikan teman-teman sudah menginstall project laravel. jika teman-teman lupa cara menginstall project laravel, teman-teman bisa membaca tutorial berikut.

Baca Juga : Cara Mudah Instalasi Laravel Untuk Pemula

Baiklah, saya anggap teman-teman sudah mempunyai atau sudah menginstall project laravel ya, seperti pada tutorial-tutorial sebelumnya.

Untuk mulai membuat contoh upload file dengan laravel, saya awali dengan membuat 2 buah route yang akan kita gunakan sebagai form upload gambar dan satunya lagi sebagai pemproses file yang diupload.

Baca Juga : Pengenalan Route Pada Laravel

routes/web.php

Pertama kita membuat route dengan nama β€˜/upload’, agar menjalankan method upload() pada controller UploadController.php. kemudian route satunya lagi saya membuat dengan nama β€˜/upload/proses’. dan route ini menjalankan method proses_upload() dalam controller UploadController.php.

Oke? sampai di sini saya yakin teman-teman sudah paham prosesnya. karena kita sudah sering menggunakan route dari tutorial laravel sebelumnya.

Selanjutnya buat sebuah controller baru dengan nama UploadController.php. karena sesuai dengan controller yang kita tuliskan pada route di atas tadi.

Teman-teman bisa membuat controller dengan perintah php artisan.

php artisan make:controller UploadController

Oke, maka sekarang kita sudah mempunyai controller UploadController.php.

Membuat Upload File Laravel

Sekarang buka file controller tersebut. karena kita akan mulai membuat upload file dengan laravel. dan buat method upload() dan method proses_upload() seperti berikut.

app/Http/Controllers/UploadController.php 

Perhatikan, pada method upload() kita menampilkan view upload.blade.php, karena pada view upload.blade.php ini kita akan membuat form penginputan file yang ingin di upload.

Buat sebuah view baru dengan nama upload.blade.php. pada view ini kita akan membuat form upload.

app/resources/views/upload.blade.php

Perhatikan pada form upload yang kita buat di atas, form ini akan diproses pada route β€œ/upload/proses” seperti yang kita buat pada routes sebelumnya. kemudian kita buat dengan method POST, dan jangan lupa β€œenctype” nya karena enctype wajib di tuliskan jika kita ingin membuat upload file.

Selanjutnya, perhatikan kembali pada method proses_upload() yang sudah kita buat sebelumnya pada controller UploadController.php.

Pada method ini kita membuat form validasi agar form file dan form keterangan wajib diisi.

Baca : Cara Membuat Form Validasi Pada Laravel

Selanjutnya kita tangkap data file yang diupload dengan fungsi berikut

Data yang diupload kita simpan ke variabel $file.

Selanjutnya kita bisa langsung menampilkan informasi detail dari file yang diupload

dan tahap terakhir kita tetapkan sebuah nama folder tempat file yang diupload akan disimpan. karena saya ingin menyimpan nama file yang diupload ini dalam folder β€œdata_file”, maka isi nama foldernya pada variabel $tujuan_upload.

Selanjutnya fungsi move() di atas bertujuan untuk mengupload file ke folder tujuan yang kita tetapkan sebelumnya.

Percobaan Upload File

Kita lihat hasilnya. jalankan project dengan php artisan serve.

dan akses project dengan alamat localhost:8000/upload.

membuat upload file dengan laravel

membuat upload file dengan laravel

Pilih file yang ingin diupload, di sini saya memilih file gambar untuk saya coba upload. klik upload.

informasi data yang diupload

informasi data yang diupload

Nah, maka tampil detail informasi tentang yang kita upload, dimana informasi yang tampil sesuai dengan yang kita perintahkan pada method proses_upload() tadi.

Kita cek juga apakah gambar yang diupload tadi tersimpan. seperti yang sudah kita tetapkan juga, sebelumnya folder tempat gambar di simpan kita buat ke folder β€œdata_file”. jika kita cek sekarang, larave telah membuatkan folder data_file secara otomatis dalam folder public.

upload file laravel

upload file laravel

Buka folder tersebut,

upload gambar dengan laravel

upload gambar dengan laravel

Nah, file gambar car.png yang saya coba upload tadi berhasil tersimpan ke dalam folder β€œdata_file”.

Lalu bagaimana cara untuk upload file tertentu yang kita batasi agar file-file tertentu saja yang boleh diupload ?

Dan bagaimana cara agar file yang diupload juga tersimpan ke database ?

Caranya mudah. yuk kita lanjutkan lagi.

Membuat Upload File Gambar Ke Database Dengan Laravel

Pada sub judul ini kita akan masuk cara membuat upload file yang file nya akan kita batasi, misalnya kita hanya akan memperbolehkan file gambar yang diupload (.png, .jpg. .jpeg).

Nanti bisa teman-teman sesuaikan sendiri dengan ekstensi yang teman-teman izinkan, silahkan sesuaikan dengan kebutuhan teman-teman sendiri ya πŸ™‚

Langkah pertama, mari kita siapkan dulu table untuk menyimpan data gambar. di sini saya membuat table dengan nama β€œgambarβ€œ. untuk membuat table gambar ini teman-teman bisa membuatnya secara manual dengan kolum sebagai berikut :

  • id (int) (auto_increment) (primary key)
  • file (varchar)
  • keterangan (varchar)

atau bisa dengan menggunakan migration laravel.

di sini saya membuat model baru dengan nama Gambar.php. sekalian dengan membuat migration nya juga.

kemudian buka file migration gambar tadi.

Selanjutnya langsung migrate, agar table gambar kita segera terbuat.

menyimpan nama file ke database

menyimpan nama file ke database

Maka sekarang kita telah punya table gambar dengan kolum sebagai berikut.

upload gambar laravel

upload gambar laravel

BACA KEMBALI :

Selanjutnya Persiapan model Gambar.php.

buka file model Gambar.php yang sudah kita buat tadi. kita akan melakukan beberapa pengaturan,

app/Gambar.php

Pada model gambar kita mengisi kolum file dan kolum keterangan yang hanya boleh diisi pada table gambar.

Selanjutnya buka view upload.blade.php, karena kita akan menampilkan data dari table gambar di bagian bawah form upload gambarnya tadi.

app/resources/views/upload.blade.php

Selanjutnya buka kembali controller UploadController.php.

app/Http/Controllers/UploadController.php

Perhatikan pada controller di atas, karena kita akan berurusan dengan table gambar, maka kita panggil dulu model Gambar.php nya (Eloquent).

Kemudian pada method upload() kita ambil semua data pada table gambar dan kita passing ke view upload.blade.php.

Pada method proses_upload() kita upload filenya dan kita simpan nama file dan keterangan yang diinput pada form sebelumnya.

Perhatikan pada bagian validation di atas, untuk membuat validasi file upload, kita bisa menambahkan dengan β€œfile|image|mimes:jpeg,png,jpg” agar hanya ekstensi tersebut yang diizinkan. dan bisa menambahkan β€œmax:” untuk membuat batas maksimal file yang boleh diupload.

Percobaan Upload File Gambar Ke Database Dengan Laravel

Sekarang kita lihat hasilnya, akses localhost:8000/upload.

upload file ke database dengan laravel

upload file ke database dengan laravel

Di sini saya coba mengupload gambar mobil, dan memberi keterangan dengan β€œMobil Mobilan”. klik upload.

upload file ke database laravel

upload file ke database laravel

Gambar berhasil tersimpan, dan kita coba upload gambar lagi.

simpan gambar ke database laravel

simpan gambar ke database laravel

Oke selesai, gambar pun berhasil tersimpan dan tampil.

Kita telah selesai belajar membuat upload file gambar ke database dengan laravel, gambar yang diupload pun telah berhasil kita tampilkan.