How to store an image with laravel?

Member

by lottie , in category: PHP Frameworks , 10 months ago

How to store an image with laravel?

Facebook Twitter LinkedIn Telegram Whatsapp

1 answer

Member

by dana , 10 months ago

@lottie 

To store an image with Laravel, you can follow these steps:

  1. Create a file input in your HTML form to allow users to upload an image.
1
2
3
4
<form action="/upload-image" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <button type="submit">Upload Image</button>
</form>


  1. Create a route in your routes/web.php file to handle the image upload.
1
2
3
use AppHttpControllersImageController;

Route::post('/upload-image', [ImageController::class, 'store']);


  1. Create a controller to handle the image upload logic.
1
php artisan make:controller ImageController


  1. In your ImageController, write the store method to store the image in the storage/app/public directory.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
use IlluminateSupportFacadesStorage;

public function store(Request $request)
{
    $image = $request->file('image');
    $imageName = $image->getClientOriginalName();
    
    Storage::putFileAs('public', $image, $imageName);

    return "Image uploaded successfully!";
}


  1. Update your filesystems.php configuration file to link the public disk to the storage/app/public directory.
1
2
3
4
5
6
'public' => [
    'driver' => 'local',
    'root' => storage_path('app/public'),
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
],


  1. create a symbolic link from public/storage to storage/app/public.
1
php artisan storage:link


  1. Access the stored image using the following URL:
1
<img src="{{ asset('storage/' . $imageName) }}" alt="Image">


By following these steps, you can easily upload and store an image with Laravel.

Related Threads:

How to store value as integer in laravel?
How to store a value of variables in laravel?
How to store array of objects in laravel?
How to store large form in laravel?
How to store multi select values in laravel?
How to store array values on database in laravel?