Laravel beberapa file unggah contoh langkah demi langkah – Codewithaden

Kami akan membangun beberapa file unggahan sistem menggunakan Laravel . Tutorial ini akan menunjukkan kepada Anda cara menggunakan validasi default Laravel dengan JQuery Ajax di frontend. Server memvalidasi semua input terhadap yang ditentukan validasi , dan jika salah satu validasi akan gagal, itu akan mengarahkan kembali ke halaman Buat kami dengan pesan kesalahan.

Laravel beberapa file unggah

Untuk mengunggah beberapa file unggahan di Laravel, gunakan plugin jQuery untuk mengisi bidang dan mengirimkan server; di backend, kami menggunakan Php foreach () Fungsi untuk mengulang melalui satu per satu file dan mengunggahnya.

Kami akan menggunakan file jQuery Plugin untuk mengisi bidang file dan mengirimkan satu server. Tentu saja, itu akan selalu sangat baik jika Anda menggunakan validasi Laravel untuk formulir web Anda dalam proyek Laravel.

Pertama, kami mengunduh salinan baru proyek Laravel dengan mengetikkan perintah berikut.

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

Setelah membuat Laravel, konfigurasikan database. Jadi pergi ke .env mengajukan dan melanjutkan kredensial basis data.

Selanjutnya, kita perlu membuat file migrasi untuk menyimpan nama gambar. Jadi buka CMD dan tendang perintah berikut.

php artisan make:migration create_files_table
 

Tentukan skema sebagai berikut.

increments('id');
            $table->string('filename');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('files');
    }
}
 

Kemudian migrasi skema ini dan buat tabel dalam database.

php artisan migr makan  

Langkah 2: Tentukan model, pengontrol, dan rute.

Tekan perintah berikut untuk menghasilkan model dan pengontrol.

php artisan make:model File

php artisan make:controller FileController
 

Ini akan menghasilkan dua file.

  1. File.php
  2. Filecontroller.php

Sekarang tentukan rute rute >> web.php mengajukan dan menambahkan rute berikut.

// web.php

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

Dalam FileController Buat fungsi, tulis kode berikut.

// FileController.php

/**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        return view('create');
    } 

Segera, buat create.blade.php file di dalam pandangan map.



  Laravel Multiple File Upload Example  

  
  

Laravel Multiple File Upload

{{csrf_field()}}

Di sini, saya telah mengambil bentuk alami untuk menambahkan file. Namun, kami membutuhkan fungsionalitas untuk mengisi bidang input saat mengklik tombol. Jadi pertama -tama, mari kita lakukan itu. Kami telah menggunakan jQuery untuk fitur itu.

Langkah 3: Tambahkan kode jQuery untuk mengisi bidang input.

Setelah menambahkan kode jQuery dan beberapa kode HTML, file kami sepertinya ini untuk memasukkan bidang input yang efektif.



  Laravel Multiple File Upload Example  

   

  

Laravel Multiple File Upload

{{csrf_field()}}

Laravel

Langkah 4: Tambahkan validasi backend.

Kami memasukkan beberapa file, jadi; Kami perlu membuat validasi array dalam proyek kami. Di sebuah Filecontroller.php file, tambahkan kode berikut untuk memvalidasi file input kami.

// FileController.php

$this->validate($request, [

                'filename' => 'required',
                'filename.*' => 'mimes:doc,pdf,docx,zip'

]); 

Ini memvalidasi terhadap bidang yang diperlukan serta jenis file. Jika file input tidak berisi file atau dokumen, pdf, docx, zip, ia melempar kesalahan, dan Laravel menangkapnya dan menunjukkan kesalahan ini di frontend. Untuk menunjukkan kesalahan dalam formulir, kita perlu menulis kode berikut setelah kelas kontainer.

// create.blade.php

      @if (count($errors) > 0)
      
Whoops! There were some problems with your input.

    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif

Oke, jadi di sini validasi selesai.

Laravel

Langkah 5: Masukkan beberapa file ke dalam database.

Setelah memeriksa validasi, kami perlu menyimpan nama file di database kami. Jadi kode akhir kami untuk memasukkan berbagai file dalam database adalah sebagai berikut.

// FileController.php

/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)

    {

        $this->validate($request, [

                'filename' => 'required',
                'filename.*' => 'mimes:doc,pdf,docx,zip'

        ]);
        
        
        if($request->hasfile('filename'))
         {

            foreach($request->file('filename') as $file)
            {
                $name=$file->getClientOriginalName();
                $file->move(public_path().'/files/', $name);  
                $data[] = $name;  
            }
         }

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

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

Jika input adalah file, itu akan mengulangi semua file satu per satu, simpan nama file dalam array, dan kemudian masukkan array itu dalam database. saya menggunakan json_encode untuk memasukkan beberapa nama file dalam satu baris.

Anda dapat membuat tabel lain dan kemudian menambahkan kunci asing ke tabel itu. Setelah sukses, kita perlu menampilkan pesan sukses. Jadi tulis kode itu di create.blade.php file.

// create.blade.php

 @if(session('success'))
   
{{ session('success') }}
@endif

Jadi, final kami create.blade.php File terlihat seperti ini.

// create.blade.php



  Laravel Multiple File Upload Example  

  
@if (count($errors) > 0)
Whoops! There were some problems with your input.

    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif @if(session('success'))
{{ session('success') }}
@endif

Laravel Multiple File Upload

{{csrf_field()}}

Sekarang, Anda dapat mengunggah beberapa file. Tapi, tentu saja, gambar dan format file lainnya tidak diizinkan.

Akhirnya, kami Laravel beberapa file unggah tutorial sudah selesai.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *