Sign in
Log inSign up

Image upload using lumen

Kenneth Ekandem's photo
Kenneth Ekandem
·Jun 22, 2020

lumen.png

To start, Laravel file systems don't work on lumen so just give up on using php artisan storage:link to link your storage. With that out of the way, let's learn how to store and read images in three easy steps.

STEP ONE: Install league/flysystems

Using composer require league/flysystem in your terminal to get the package.

STEP TWO: Integrate and use

in your lumen controller, for example userController.php use the following code in your create function

if ($request->hasFile('photo')) { $fileExtension = $request->file('photo')->getClientOriginalName(); $file = pathinfo($fileExtension, PATHINFO_FILENAME); $extension = $request->file('photo')->getClientOriginalExtension(); $fileStore = $file . '_' . time() . '.' . $extension; $path = $request->file('photo')->storeAs('photos', $fileStore); }

The storeAs() leads to the folder you'll be pushing the image to, for example storage/app/photos . Then you use the $fileStore variable to store in the database.

STEP THREE: Fetching the image

To fetch the image use;

$photo = $user['photo']; $path = "your_url/storage/app/photos" . $photo; you can edit it to call on the current path and column and then return your response, that is all.

NOTE: This works when hosted on a server, local server requires using a storage_path and can only be viewed if you redirect to a resource/view page and call the $path in an img tag. ✌️

Hassle-free blogging platform that developers and teams love.
  • Docs by Hashnode
    New
  • Blogs
  • AI Markdown Editor
  • GraphQL APIs
  • Open source Starter-kit

© Hashnode 2024 — LinearBytes Inc.

Privacy PolicyTermsCode of Conduct