phplaravellaravel-5

Laravel - Image saved in storage folder not showing to user


I have this code to save an image in the storage/app/uploads folder

 $image_main = Image::where('property_id', $id)->get();

$file = $request->file('file');
      $destinationPath = 'uploads';
      $i = 0;
      foreach ($file as $file1) {
          $i++;
          $extension = $file1->getClientOriginalExtension();
          $path = $file1->storeAs(
              $destinationPath, $i.time().".".$extension
          );

This is my blade file

@foreach ($image_main as $images)
        <img src="{{"/storage/app/".$images->filename}}

The file saves in the storage/app/uploads folder but it doesn't show to the user, it says file not found. am I to set anything in the filesystems.php file


Solution

  • Laravel storage filesystem is so unique. Any file upload will be stored in the storage/app/public directory. To make it accessible in public directory, things you need to do is to the create symlink by running the command:

    php artisan storage:link
    

    This command will symlinked storage/app/public to public/storage

    Just follow the documentation about how to upload and how to retrieve the file url. I am pretty sure the step you are missing is creating the symlink.

    Hope it helps.