Unggah Gambar dengan Laravel - MySQL

Pengelolaan Gambar Laravel - MySQL

Di artikel sebelumnya, telah kita pelajari bagaimana membuat projek unggah gambar dengan Laravel. 
Tetapi bagian pembelajaran sebelumnya hanya terbatas pada mengunggah di lokal komputer, belum masuk ke dalam pendataan menggunakan basis data. Sekarang mari kita pelajari bagaimana caranya menyimpan gambar ke dalam basis data MySQL.  

Secara garis besar, muncul pertanyaan "Apakah gambar apakah bisa disimpan dalam basis data MySQL !?"
Tentu saja bisa. Gambar atau file besar mampu disimpan di dalam MySQL. Lalu tipe data apa yang kita gunakan untuk menyimpan gambar ? Nah, muncul lagi sebuah pertanyaan. Umumnya angka "1" dengan tipe data int sebab bulat, "1,2" "10,5" menggunakan tipe data double, "A" menggunakan tipe data char, "A1" menggunakan tipe data varchar / text dan "Muhammad" / "Ahmad" dengan tipe data varchar.
Kalau gambar ? Untuk gambar bisa menggunakan tipe data blob.


Tetapi, tidak disarankan langsung menyimpan gambar dalam basis data. Sebab file gambar yang lumayan besar. Bisa dibayangkan kalau satu gambar berukuran 1 MB, nanti dalam penyimpanan 100 gambar atau lebih membutuhkan berapa memori ?

Disarankan untuk menyimpan nama gambarnya saja ke dalam sebuah basis data. Dengan begitu, resiko overload memori akan sangat berkurang.

Pada artikel pembelajaran kali ini menggunakan projek sebelumnya, beri modif sedikit. Ada penambahan modul di dalam controller GambarController.php :
use Illuminate\Support\Facades\DB;
Untuk menggunakan DB::table() saat method simpanGambar(Request $request) dipanggil.


Oiya, pastikan sebelum melanjutkan ke tahap berikutnya. Telah ada tabel dalam MySQL, di artikel ini tabel yang dibuat hanya dengan dua kolom yaitu id dan nama_gambar.
  • id int(3) auto_increment
  • nama_gambar varchar(100)
nama_gambar dibuat panjang sebab kita tidak mengatur nama gambar, nama gambar akan secara default diubah namanya oleh Laravel dan akan menggunakan huruf acak yang lumayan panjang, maka dari itu kita akomodir dengan lenght dalam basis data yang juga lumayan.

Kemudian, di dalam method simpanGambar(Request $request) ditambahkan perintah :

Untuk menyimpan nama file yang telah dipilih menggunakan tombol Choose File. 
Kemudian perintah DB::table('tb_gambar')->insert([]); memiliki fungsi :
INSERT INTO tb_gambar VALUES ...

Selanjutnya di bagian method tampilGambar(), berikan modifikasi sedikit menjadi :

Dan pada views tampil.blade.php seperti biasa gunakan @foreach untuk mengulang menampilkan data dari MySQL. Modifikasi kode tidak banyak, hanya menambahkan :
  • @foreach
  • variabel
  • {{ }}
🛈 Ket :
URL::to('/')
Untuk kembali ke folder root  Laravel

/storage/path_ke_folder/
Untuk mengakses folder path_ke_folder

{{ $gambardb->nama_gambar }}
Menampilkan nama gambar yang telah disimpan namanya di dalam MySQL. 
Tanda "->nama_gambar" merupakan pengambilan data dari nama kolom yang ada di dalam tabel kita.

Sekarang mari coba jalankan kembali projek unggah_gambar kita dengan
php artisan serve




Selanjutnya nih, bagian terakhir kita cek dalam basis data. Apakah betul sudah tersimpan namanya?

Yups, berhasil tersimpan gaes!
Sekarang coba akses route untuk menampilkan data gambar kita, yaitu /gambar/tampil :

Dan ternyataaaaa....
Taraaaaa, penyimpanan gambar ( namanya ) dan menampilkan kembali ke dalam web browser berhasil! 😍😇
Selamat belajar dan belajar!!!
Kembangkan bakat dan skills dalam IT 😎


Ahmad Istakim

Alumni dari jurusan Manajemen Informatika di Universitas Sains Al-Qur'an (UNSIQ ) Wonosobo. Tertarik dalam bidang pendidikan, teknologi komputasi dan disiplin ilmu keislaman ( Tafsir, Hadits, Arudl, Nahwu-Sharaf, Fiqh maupun Aqidah ) - https://s.id/blog-islamQ. Pernah juga mengenyam pendidikan di beberapa pesantren yang ada di Kab. Wonosobo dan Kab. Purworejo

Posting Komentar

Lebih baru Lebih lama