Laravel 5 File(Image) Upload Example with Validation
- app/Http/routes.php
Route::group(['middleware' => 'web'], function () {
Route::get('fileUpload', function () {
return view('fileUpload');
});
Route::post('fileUpload', ['as'=>'fileUpload','uses'=>'HomeController@fileUpload']);
});
- app/Http/Controllers/HomeController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
public function fileUpload(Request $request)
{
$this->validate($request, [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$image = $request->file('image');
$input['imagename'] = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/images');
$image->move($destinationPath, $input['imagename']);
$this->postImage->add($input);
return back()->with('success','Image Upload successful');
}
}
- resources/views/fileUpload.blade.php
@extends('layouts.app')
@section('content')
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
{!! Form::open(array('route' => 'fileUpload','enctype' => 'multipart/form-data')) !!}
<div class="row cancel">
<div class="col-md-4">
{!! Form::file('image', array('class' => 'image')) !!}
</div>
<div class="col-md-4">
<button type="submit" class="btn btn-success">Create</button>
</div>
</div>
{!! Form::close() !!}
Commentaires
Enregistrer un commentaire