Laravel upload public storage success
Laravel upload public storage success

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.

- Advertisement -
Melayani Cetak dan Recover Buku Yasin dan Juz 'Amma serta Kalender

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.

tabel database upload file images laravel
tabel database upload file images laravel

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
Laravel artisan create model and controller
Laravel artisan create model and controller
// 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.

Laravel uploads file blade position
Laravel uploads file blade position
// 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.

Laravel form uploads file or images
Laravel form uploads file or images

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

Laravel uploads file or images success
Laravel uploads file or images success

Juga kita dapat menjumpai pada tabel upload berhasil seperti berikut.

Laravel upload file or images database success
Laravel upload file or images database success

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

Laravel upload public storage success
Laravel upload public storage success

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 🙂

Previous articleWhich Next-Gen Gaming Console to Buy?
Next articleLaravel Tutorial Multiple Upload Files
Tech News, Gadgets, Tutorial, IT Solution, Web Developer

LEAVE A REPLY

Please enter your comment!
Please enter your name here