ahmadajah03 Mon Apr 2020 1 year ago

Tutorial Multiple File Upload pada Laravel 7

Dalam contoh ini, Anda akan belajar mengunggah banyak file di laravel 7. Anda akan belajar mengunggah banyak file di php laravel 7. contoh ini akan membantu Anda mengunggah banyak file laravel 7. saya ingin berbagi dengan Anda laravel 7 contoh unggahan beberapa file .

Kami akan membuat beberapa file upload sederhana di laravel 7. Jadi pada dasarnya Anda menggunakan kode ini pada aplikasi laravel 7 Anda.

Kita akan mengunggah banyak file dan menyimpan di server kemudian setelah kita akan menyimpan database juga. jadi dalam contoh ini kita akan membuat tabel "file" menggunakan migrasi laravel dan menulis kode langkah demi langkah untuk route, controller dan view .

Jadi di sini Anda hanya perlu mengikuti langkah di bawah untuk membuat Laravel 7 beberapa File Upload dengan Contoh Validasi.

Langkah 1: Download Laravel 7

Pada langkah pertama, kita akan mengunduh kode sumber salinan baru sederhana dari proyek Laravel App dengan mengetikkan beberapa perintah berikut.

composer create-project --prefer-dist laravel/laravel blog

Langkah 2: Tambahkan Migrasi dan Model

Di sini, kita perlu membuat migrasi database untuk tabel file dan juga kita akan membuat model untuk tabel file.

php artisan make:migration create_files_table

Migration:

<?php


use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;


class CreateFormsTable extends Migration
{
    public function up()
    {
        Schema::create('files', function (Blueprint $table) {
            $table->increments('id');
            $table->string('filenames');
            $table->timestamps();
        });
    }


    public function down()
    {
        Schema::dropIfExists('files');
    }
}
php artisan migrate

sekarang kita akan membuat model File dengan menggunakan perintah berikut:

php artisan make:model File

Langkah 3: Buat Route

Pada langkah ketiga, kami akan membuat rute untuk beberapa file yang diunggah. jadi buat dua route dengan GET dan contoh route POST.

rutes/web.php

Route::get('file','FileController@create');
Route::post('file','FileController@store');

Langkah 4: Buat Controller

Sekarang kita perlu menambahkan pengontrol FileController baru untuk mengelola route. Jadi mari kita buat FileController dengan metode create and store. Pastikan Anda perlu membuat folder "file" di direktori publik Anda.

app/Http/Controllers/FileController.php

<?php


namespace App\Http\Controllers;


use Illuminate\Http\Request;


class FileController extends Controller
{
    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('create');
    }


    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {


        $this->validate($request, [
                'filenames' => 'required',
                'filenames.*' => 'mimes:doc,pdf,docx,zip'
        ]);


        if($request->hasfile('filenames'))
         {
            foreach($request->file('filenames') as $file)
            {
                $name = time().'.'.$file->extension();
                $file->move(public_path().'/files/', $name);  
                $data[] = $name;  
            }
         }


         $file= new File();
         $file->filenames=json_encode($data);
         $file->save();


        return back()->with('success', 'Data Your files has been successfully added');
    }
}

 

Langkah 5: Buat File Blade

 

pada langkah ini kita perlu membuat file create.blade.php di folder resources. Jadi mari kita buat file:

resources/views/create.blade.php

<html lang="en">
<head>
  <title>Laravel 7 Multiple File Upload Example</title>
  <script src="jquery/1.9.1/jquery.js"></script>
  <link rel="stylesheet" href="3.3.6/css/bootstrap.min.css">
</head>
<body>


<div class="container lst">


@if (count($errors) > 0)
<div class="alert alert-danger">
    <strong>Sorry!</strong> There were more problems with your HTML input.<br><br>
    <ul>
      @foreach ($errors->all() as $error)
          <li>{{ $error }}</li>
      @endforeach
    </ul>
</div>
@endif


@if(session('success'))
<div class="alert alert-success">
  {{ session('success') }}
</div> 
@endif


<h3 class="well">Laravel 7 Multiple File Upload</h3>
<form method="post" action="{{url('file')}}" enctype="multipart/form-data">
  {{csrf_field()}}


    <div class="input-group hdtuto control-group lst increment" >
      <input type="file" name="filenames[]" class="myfrm form-control">
      <div class="input-group-btn"> 
        <button class="btn btn-success" type="button"><i class="fldemo glyphicon glyphicon-plus"></i>Add</button>
      </div>
    </div>
    <div class="clone hide">
      <div class="hdtuto control-group lst input-group" style="margin-top:10px">
        <input type="file" name="filenames[]" class="myfrm form-control">
        <div class="input-group-btn"> 
          <button class="btn btn-danger" type="button"><i class="fldemo glyphicon glyphicon-remove"></i> Remove</button>
        </div>
      </div>
    </div>


    <button type="submit" class="btn btn-success" style="margin-top:10px">Submit</button>


</form>        
</div>


<script type="text/javascript">
    $(document).ready(function() {
      $(".btn-success").click(function(){ 
          var lsthmtl = $(".clone").html();
          $(".increment").after(lsthmtl);
      });
      $("body").on("click",".btn-danger",function(){ 
          $(this).parents(".hdtuto control-group lst").remove();
      });
    });
</script>


</body>
</html>

 

Sekarang Anda dapat menjalankan dan memeriksanya.

Saya harap ini dapat membantu Anda ...

upload laravel