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
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
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.
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
Posting Komentar