Langsung ke konten utama

Upload dan Resize Gambar Laravel

Halo sob, kali ini akan membahas tentang cara upload file dan resize gambar di laravel. Upload gambar sering dilakukan saat kita menggunakan sosial media, daftar online atau pun berjualan di toko online. Tentunya gambar yang kita upload sangat bervariasi mulai yang berukuran kecil sampai besar. Jika gambar asli yang ditampilkan saat memuat halaman web, pastinya akan lama dan menghabiskan banyak RAM server. Resize gambar sangat berguna untuk mengatasi hal ini karena file dapat di ubah menjadi lebih kecil menyesuaikan dengan kebutuhan. pengolahan gambar dengan package yang sudah banyak di internet akan sangat membantu dalam penulisan kode. Library yang digunakan kali ini adalah 'Intervention Image'.



Pertama yang harus dilakukan adalah memasang library tersebut di dalam project dengan menuliskan perintah 'composer require intervention/image' di cmd. Kemudian buka file config app di path config/app.php. pada bagian 'provider', tambahkan kode berikut


Masih di file yang sama, cari bagian 'aliases' dan tambahkan


Library sudah selesai dipasang dan lanjut ke pembuatan kode upload file. Buat 2 route dengan tipe get dan post, get untuk menampilkan form upload dan post untuk proses upload. contoh kode seperti dibawah ini


Sobat pasti sudah paham maksud dari setiap bagian dari kode di atas. Seleteah membuat route, buat file controller dengan nama ImageController atau bisa menggunakan cmd yaitu dengan menuliskan 'php artisan make:controller ImageController' maka akan dibuatkan sebua file dengan nama itu. Buat fungsi 'formUpload' dalam file controller seperti kode di bawah


Maksud dari kode di atas adalah jika mengakses fungsi formUpload, maka akan ditampilkan sebuah halaman dengan nama 'form-upload'. Sekarang buat file sebagai tempat untuk melakukan upload gambar pada path resources/views/form-upload.blade.php. Isi file view tersebut dengan kode di bawah


Dalam form terdapat 'csrf_token()' yang berfungsi sebagai pengamanan data. Ada beberapa cara dalam penulisan field tersebut, lebih lengkapnya bisa cari di google. Form tersebut mengarah pada route 'proses-upload' yang sudah dibuat tadi. Sekarang kita buat isi dari fungsi 'prosesUpload' pada controller ImageController. Agar resize gambar dapat berjalan dengan baik, maka menambahkan alias dari library Intervention Image yang sudah ditambahkan di config app pada awal pembahasan tadi pada bagian bawah namespace controller seperti di bawah ini

use Image;

Tapi ini bersifat opsional karena bisa juga di tulis langsung pada saat membutuhkan library tersebut dengan menambahkan backslash sebelum nama alias seperti contoh di bawah

\Image

Resize gambar dapat dilakukan dengan beberapa cara dan hasil yang berbeda-beda. Berikut isi kode dari fungsi 'prosesUpload'


Sebelum menjalankan proses upload, buat folder baru dengan nama uploads pada folder public guna sebagai tempat hasil dari proses upload. Cara resize di atas akan menghasilkan file gambar dengan ukuran 200 x 200 pixel. Jika ingin mengubah ukuran hanya lebar atau tinggi dari gambar bisa menggunakan kode berikut


Tapi ada suatu keadaan dimana gambar harus memiliki perbandingan ukuran yang sama dengan gambar asli. perbandingan dapat mengacu pada lebar atau tinggi yang didefinisikan. Sebagain contoh seperti kode di bawah


Ada kebutuhan yang mengharuskan sistem dapat mengambil keputusan apakah memakai lebar atau tinggi sebagai acuan perbandingan. Dengan menambahkan logika sedikit dapat menjawab masalah tersebut


Pertama definisikan ukuran dari lebar dan tinggi perubahan gambar. Kemudian periksa gambar asli apakah lebar lebih besar dari pada tinggi. jika lebar gambar lebih besar maka lebar akan bernilai null. dan jika tinggi yang lebih besar maka tinggi akan bernilai null. Bisa juga memasang logika lain sesuai dengan kebutuhan. seperti kode sebelumnya, parameter yang tidak null akan digunakan acuan dalam proses resize gambar.

Terimakasih telah berkunjung dan semoga bermanfaat.

Komentar

Postingan populer dari blog ini

Membuat Helper Laravel

Halo sob, postingan pertama saya membahas tentang cara membuat helper di laravel. kenapa larvel? karena itu merupakan framework pertama yang saya pelajari dan saya bisa. Helper dalam pemrograman web sangat membantu menyederhanakan script dengan hasil keluaran yang sama. Misal data berbentuk array atau object ingin di ubah jadi format tertentu dan itu akan digunakan berulang-ulang, tentunya akan banyak penulisan script yang sama. Hal itu akan memakan banyak waktu dan banyak baris kode dalam pembuatannya. Belum lagi jika ada kesalahan pada kode yang terlanjur di copas bi berbagai baris atau file, tentunya akan merepotkan jika mengubahnya satu persatu. Oke langsung saja ke tahapan pembuatan helper di laravel. Disini akan saya jelaskan 2 cara pembuatan helper, yang pertama dengan menambahkan menambahkan path file helper di composer.json dan yang kedua dengan menambahkan alias di config app. Cara Pertama Buat file yang akan dijadikan tempat penulisan script helper misal dengan pat...