In this tutorial you will be shown how to upload an image or file to storage folder in Laravel using Laravel 8.
Step 1. Execute command to create controller
php artisan make:controller ImageUploadController
Edit the file in "app/Http/Controllers":
namespace App\Http\Controllers;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
class ImageUploadController extends Controller {
public function index() {
return view('upload');
}
/**
* @param Request $request
* @return Application|RedirectResponse|Redirector
*/
public function storeFile(Request $request) {
$data = "File ".$request->file('file')->getClientOriginalName()." uploaded successfully. ";
$request->file('file')->store('store-file');
session()->flash('message', $data);
return redirect('/');
}
}
Step 2. add routes to web.php
Go to "routes/web.php" and add:
Route::get('/', [ImageUploadController::class, 'index']);
Route::post('/store-file',[ImageUploadController::class, 'storeFile'])->name('store.file');
Step 3. Create the view
Go to "resources/views" and create blade file "upload.blade.php"
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wecode101 receiving mail tutorial</title>
<meta content="Wecode101 upload file to storage folder in Laravel 8" name="description">
<meta content="Wecode101" name="author"> <meta content="{{ csrf_token() }}" name="csrf-token"> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
<div> Upload File
<form action="{{route('store.file')}}" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="exampleInputFile">File <input aria-describedby="File" id="exampleInputFile" name="file" type="file"></label>
<input aria-describedby="DataType" id="exampleInputDataType" value={{"bloomberg_name"}} name="data-type" type="hidden">
</div> <div class="form-group"> <input name="_token" type="hidden" value="{{ csrf_token() }}"> <button class="btn btn-primary" type="submit">Submit</button>
</div>
</form>
</div>
</div>
</body>
</html>
Step 4. Run command
php artisan serve
Go to the page and try to upload a file or an image. Now check "storage/app" directory, you should see "store-file" folder and the file should be there.
If you wish to download this tutorial go to https://github.com/wecode101/image_or_file_upload.