application /Http/Controllers/FileController.php
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=$file->getClientOriginalName(); $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'); }
Create view file
resources / views / create.blade.php
<html lang="en"> <head> <title>Laravel 5.3 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 5.6 Multiple File Upload</h3> <form method="post" action="{{url('file')}}" enctype="multipart/form-data"> {{csrf_field()}} <div class="input-group flcustom 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="flcustom 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(".flcustom control-group lst").remove(); }); }); </script> </body> </html>
Laravel 5.3 - Download multiple files with validation example
source share