Today, I will learn you how to store file with validation in laravel 6. I will add validation with image upload in laravel 6.
I will add image upload validation like image, mimes, max file upload etc, So you can easily understand and you it simply.In this blog made easy to upload the image to the folder and store into the database in the laravel 6.
You can upload images into folder and database with laravel validation as bellow.
We will Follow the bellow step.
Step 1 : Install Laravel project
In this step you can install fresh laravel project to using bellow command.
composer create-project --prefer-dist laravel/laravel blog
Step 2 : Create Migration & Model
Now you will bellow command to create migration and model in laravel app.
php artisan make:model Image -m
Above command to create one table migration file and one model file.
database/migrations/2019_12_11_111847_create_images_table.php
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateImagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('images', function (Blueprint $table) {
$table->increments('id');
$table->string('image');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('images');
}
}
Bellow command to use migrate your table.
php artisan migrate
Step 3 : Create Controller
In this step create controler file to use bellow command.
php artisan make:controller ImageController
Step 4 : Create Controller method
Create controller after you can put the bellow code in controller file.
app/http/controllers/ImageController
<?php
namespace App\Http\Controllers;
use App\Image;
use Illuminate\Http\Request;
class ImageController extends Controller
{
public function create()
{
return view('create');
}
public function store(Request $request)
{
$request->validate([
'img' => 'required|mimes:jpeg,jpg,png',
]);
$input = $request->all();
$file = $request->file('img');
$input['img'] = $file->getClientOriginalName();
$file->move(public_path('upload'),$file->getClientOriginalName());
Image::create(['image' => $input['img']]);
return redirect()->back();
}
}
Step 5 : Create Routes
In this step you will create route in web.php file.
routes/web.php
Route::get('image','ImageController@create')->name('image.create');
Route::post('image','ImageController@store')->name('image.store');
Step 6 : Create View File
In this step you can create blade file in laravel app.
resources/views/create.blade.php
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" integrity="sha256-NuCn4IvuZXdBaFKJOAcsU2Q3ZpwbdFisd5dux4jkQ5w=" crossorigin="anonymous" />
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<div class="row mt-5">
<div class="col-md-6 offset-3">
<div class="card">
<div class="card-heading bg-success">
<h2 class="text-center text-white p-2"><b>Upload Image</b></h2>
</div>
<div class="card-body">
@if (count($errors) > 0)
@foreach($errors->all() as $error)
<div class="alert alert-danger">{{ $error }} </div>
@endforeach
@endif
<form action="{{ route('image.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label>Image*</label>
<input type="file" name="img" class="form-control">
</div>
<div class="form-group" class="text-center">
<button class="btn btn-success btn-sm">Save</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
No comments:
Post a Comment