Laravel Tutorial Membuat Upload Image atau File ke Database MySQL dan Public Storage – Sebagaimana kita telah ketahui bahwa fitur upload file pada sebuah aplikasi merupakan fitur wajib yang harus ada. Ya, pasalnya setiap membuat aplikasi berbasis web pasti selalu melakukan upload file, seperti dapat kita temukan pada menu profile yang menyertakan foto user, menu berita, menu data produk, upload berkas, dan mungkin menu lainnya yang membutuhkan file.
Dari alasan tersebut maka pada tutorial kali ini kami akan menyuguhkan sebuah tutorial yang membahas langkah demi langkah atau step by step melakukan upload image ataupun file pada framework Laravel.
Tutorial upload file pada laravel kali ini akan dibahas secara simple, sehingga secara step by step untuk melakukan upload image ataupun file adalah seperti berikut.
Step 1 Install Laravel Project
Lamgkah pertama dari semua langkah ketika kita ingin menggunakan framework PHP Laravel adalah terlebih dahulu meng-installnya ke laptop ataupun PC. Jalankan composer berikut pada jendela Terminal/ Command Prompt untuk melakukan instalasi project laravel.
composer create-project --prefer-dist laravel/laravel blog
Untuk menggunakan versi tertentu saat meng-install laravel dapat menjalankan command composer berikut.
composer create-project --prefer-dist laravel/laravel blog"x.*"
Step 2 Setup Database
Tahap selanjutnya adalah menghubungkan project laravel ke database baik MySQL, MariaDB, ataupun database lainnya.
Untuk melakukan setup database pada project development laravel dapat disetting melalui file environment (.env) seperti berikut.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3307 DB_DATABASE=laravelbasic DB_USERNAME=root DB_PASSWORD=
Jangan lupa untuk membuatkan satu buah tabel pada database untuk menampung upload file. Kali ini saya membuat tabel pada database tidak melalui database migrations, akan tetapi saya langsung membuatnya melalui phpmyadmin, dan kebutuhan tabel tersebut adalah seperti berikut.

Step 3 Create Routes
Pada tahap ini kita akan membuatkan routes, untuk menambahkan routes pada laravel dapat dilakukan dengan meletakkan potongan code routes pada file web.php pada folder “routes” laravel.
Adapun Kebutuhan akan routes pada tutorial upload image ataupun file pada tutorial laravel kali ini adalah seperti berikut.
Route::get('/uploads', 'UploadsController@index')->name('uploads'); Route::post('/save','UploadsController@store')->name('uploads.store');
Step 4 Create Image Upload Controller dan Model
Langkah selanjutnya adalah membuatkan controller upload file beserta file modelnya. Pada laravel sebuah controller dapat digunakan untuk mengambil permintaan, memparsing permintaan, menginisialisasi, memanggil model yang dibutuhkan, mengambil respon dan mengirimkannya ke view.
Untuk membuat controller sekaligus model pada laravel dapat kita lakukan dengan menjalankan perintah artisan melalui jendela Terminal/ Command Prompt. Jalankan perintah artisan berikut.
php artisan make:model Uploads -mcr

// file controller UploadsController.php <?php namespace App\Http\Controllers; use App\Uploads; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class UploadsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { return view('upload'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'filename' => 'required', 'filename.*' => 'mimes:doc,docx,PDF,pdf,jpg,jpeg,png|max:2000' ]); if ($request->hasfile('filename')) { $filename = round(microtime(true) * 1000).'-'.str_replace(' ','-',$request->file('filename')->getClientOriginalName()); $request->file('filename')->move(public_path('images'), $filename); Uploads::create( [ 'data_file' =>$filename ] ); echo'Success'; }else{ echo'Gagal'; } } }
// file model Uploads.php <?php namespace App; use Illuminate\Database\Eloquent\Model; class Uploads extends Model { protected $table ='uploads'; protected $primaryKey = 'id'; protected $fillable = array('data_file','created_at','updated_at'); }
Step 5 Create Blade File to Upload
Pada tahap ini kita akan membuat file blade, file ini terletak pada folder “resources/views” pada laravel.
Buatlah sebuah file blade dengan nama upload.blade.php, sehingga terlihat seperti berikut.

// file upload.blade.php @extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">{{ __('Upload File or Images') }}</div> <div class="card-body"> <form method="POST" action="{{ route('uploads.store') }}" enctype="multipart/form-data"> @csrf <div class="form-group row"> <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('File') }}</label> <div class="col-md-6"> <input type="file" class="form-control" name="filename" required> </div> </div> <div class="form-group row mb-0"> <div class="col-md-6 offset-md-4"> <button type="submit" class="btn btn-primary"> {{ __('Upload') }} </button> </div> </div> </form> </div> </div> </div> </div> </div> @endsection
Step 6 Create “images” Directori
Pada tahap ini kita buatkan sebuah folder atau direktori pad folder “public/namadirektori” pada laravel.
Buatlah sebuah folder atau direktori baru dengan nama “images” yang akan kita gunakan untuk menampung file ataupun image yang akan diupload.
Tahap final adalah melakukan running tes aplikasi, apakah berjalan dengan yang diharapkan atau tidak. Untuk melakukan testing kita dapat menjalankan laravel server development dengan menjalankan perintah artisan seperti berikut.
php artisan serve
Kemudian kita dapat mengakses project melalui browser dengan menjalankan url localhost:8000/uploads, jika semua berjalan dengan baik maka kita akan disambut oleh halaman upload file dan images seperti berikut.

Lalu disaat berhasil mengupload file ataupun images maka akan ditampilkan pesan success seperti pada gambar berikut.

Juga kita dapat menjumpai pada tabel upload berhasil seperti berikut.

Dan kita juga dapat menjumpai file yang berhasil ter-upload pada folder “public/images” seperti terlihat berikut.

Akhirnya sampai disini kita telah berhasil membuat fitur Upload Image atau File ke Database MySQL dan Public Storage pada framework Laravel, akhirnya saya mengucapkan banyak terimakasih telah menyempatkan berkunjung di Jogjatech.com, semoga tutorial yang singkat ini dapat menambah wawasan serta memberi manfaat, terimakasih and happy coding 🙂