File uploading in laravel is very easy. First You create view file where user select a file and create controller for processed selected file.
Step-1:
First create uploadfile.blade.php in resources/views/ directory and copy the code in that file.
<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
@csrf
<input type="file" name="image">
<button type="submit">Upload</button>
</form>
Step- 2:
Second step create controller UploadController By executing this command
php artisan make:controller UploadController
Open the generated UploadController.php file in the app/Http/Controllers directory and put this code in this file
Note: Create a directory named ‘images’ in the ‘public’ directory to store uploaded images.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class UploadController extends Controller
{
public function index() {
return view('uploadfile');
}
public function upload(Request $request)
{
$request->validate([
'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', // You Adjust max size and file extension
]);
$imageName = time() . '.' . $request->image->extension();
$request->image->move(public_path('images'), $imageName);
return "Image uploaded successfully!";
}
}
?>
Step- 3:
In your web.php file. define a route to handle the file upload request and upload file.
<?php
use App\Http\Controllers\UploadController;
Route::get('/uploadfile','UploadFileController@index');
Route::post('/upload', 'UploadFileController@upload')->name('upload');
?>
Step- 4:
Visit This url to test upload file functionality
http://localhost:8000/uploadfile