Laravel 5.3 File Upload

laravel-logoMembuat fungsi upload pada Laravel 5.3 sangatlah mudah, yang dibutuhkan hanya membuat controller, konfigurasi routing, dan membuat view untuk form upload. Fungsi pengangan upload dan sebagainya sudah diberikan oleh Laravel. Mari kita praktekkan,

Membuat controller

artisan make:controller FileUploadController

Isi dari controller tersebut adalah dua buah fungsi sebagai berikut

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class FileUploadController extends Controller
{
    public function index(){
        return view('upload.index');
    }

    public function upload(Request $request){
        $file = $request->file('filename');
        echo 'File name :'.$file->getClientOriginalName().'<br>';
        echo 'File extension :'.$file->getClientOriginalExtension().'<br>';
        echo 'File path :'.$file->getRealPath().'<br>';
        echo 'File size :'.$file->getSize().'<br>';
        echo 'File MIME Type :'.$file->getMimeType().'<br>';

        //upload file
        $destinationPath='uploads';
        $filename = $file->getClientOriginalName();
        if($file->move($destinationPath,$file->getClientOriginalName())){
            echo "<img src='uploads/".$filename."'>";
        }
        

    }
}

Routing

Kemudian buat konfigurasi routing untuk kedua fungsi tersebut

Route::get('/upload','[email protected]');
Route::post('/upload','[email protected]');

View

Yang terakhir adalah membuat tampilan form uploadnya

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">

        <title>Laravel Upload File</title>
        
    </head>
    <body>

<form action="" method="post" enctype="multipart/form-data">
            {{ csrf_field() }}
            <label for="file">Select File</label>
            <input type="file" name="filename" id="file" value="">
            
            <input type="submit" name="upload" id="upload" value="Upload">
        </form>

    </body>

</html>

Nah sudah selesai, silakan coba dengan menjalankan pada alamat localhost:8000/upload
Semoga bermanfaat