Laravel 8 File Upload Tutorial

 

Laravel 8 File Upload Tutorial
Laravel 8 File Upload Tutorial

---------------------------

$Imgefile     = $request->file('SideLogo');
$ImgefileName = $Imgefile->getClientOriginalName();
$Imgefile->move(public_path('images'), $ImgefileName);

----------------------------


File Upload in Laravel 8 Example Tutorial

  • Step 1 – Download Laravel 8 Application
  • Step 2 – Database Configuration
  • Step 3 – Build File Model & Migration
  • Step 4 – Create Routes
  • Step 5 – Build Upload Controller By Artisan Command
  • Step 6 – Create File Upload Form
  • Step 7 – Create Directory inside Storage/app/public
  • Step 8 – Run Development Server

Step 1 – Download Laravel 8 Application

First of all, download or install laravel 8 new setup. So, open terminal and type the following command to install new laravel 8 app into your machine:

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

Step 2 – Database Configuration

In this step, setup database with your downloded/installed laravel 8 app. So, you need to find .env file and setup database details as following:

1
2
3
4
5
6
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database-name
DB_USERNAME=database-user-name
DB_PASSWORD=database-password

Step 3 – Build File Model & Migration

In this step, open again your command prompt. And run the following command on it. To create model and migration files:

php artisan make:model File -m

After that, open create_files_table.php file inside /database/migrations/ directory. And the update the function up() with following code:

1
2
3
4
5
6
7
8
9
public function up()
{
    Schema::create('files', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('path');
        $table->timestamps();
    });
}

Then, open again command prompt and run the following command to create tables into database:

php artisan migrate

Step 4 – Create Routes

In this step, open web.php file from routes direcotry. And update the following routes into web.php file:

1
2
3
4
use App\Http\Controllers\FileUploadController;
 
Route::get('file-upload', [FileUploadController::class, 'index']);
Route::post('store', [FileUploadController::class, 'store']);

Step 5 – Build File Upload Controller By Artisan Command

In this step, run the following command on command prompt to create controller file:

php artisan make:controller FileUploadController

After that, go to app/http/controllers and open FileUploadController.php file. And update the following code into it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use App\Models\File;
 
class FileUploadController extends Controller
{
     public function index()
    {
        return view('file-upload');
    }
 
    public function store(Request $request)
    {
         
        $validatedData = $request->validate([
         'file' => 'required|csv,txt,xlx,xls,pdf|max:2048',
 
        ]);
 
        $name = $request->file('file')->getClientOriginalName();
 
        $path = $request->file('file')->store('public/files');
 
 
        $save = new File;
 
        $save->name = $name;
        $save->path = $path;
 
        return redirect('file-upload')->with('status', 'File Has been uploaded successfully in laravel 8');
 
    }
}

The following line of code will upload an file into the files directory:

1
$path = $request->file('file')->store('public/files');

Step 6 – Create File Upload Form

Now, create file upload form in blade view file for display file upload form and submit to the database.

So, Go to resources/views and create file-upload.blade.php and update the following code into it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
<html>
<head>
  <title>Laravel 8 File Upload Example - Tutsmake.com</title>
 
  <meta name="csrf-token" content="{{ csrf_token() }}">
 
 
 
</head>
<body>
 
<div class="container mt-4">
 
  <h2 class="text-center">File Upload in Laravel 8 - Tutsmake.com</h2>
 
      <form method="POST" enctype="multipart/form-data" id="upload-file" action="{{ url('store') }}" >
                 
          <div class="row">
 
              <div class="col-md-12">
                  <div class="form-group">
                      <input type="file" name="file" placeholder="Choose file" id="file">
                        @error('file')
                        <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                        @enderror
                  </div>
              </div>
                 
              <div class="col-md-12">
                  <button type="submit" class="btn btn-primary" id="submit">Submit</button>
              </div>
          </div>    
      </form>
</div>
 
</div
</body>
</html>

The following below code will display the validation error message on the blade view file:

1
2
3
@error('file')
<div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
@enderror

Step 7 – Create Directory inside Storage/app/public

Now, create directory name files inside storage/app/public directory. Because the following line of code will upload an file into the files directory, which is located inside storage/app/public/ directory:

$path = $request->file('file')->store('public/files');

Step 8 – Run Development Server

Last step, open command prompt and run the following command to start developement server:

php artisan serve

Then open your browser and hit the following url on it:

http://127.0.0.1:8000/file-upload

Source: https://www.tutsmake.com/laravel-8-file-upload-tutorial/



Post a Comment

أحدث أقدم