Neeraj1005's avatar

File Storage not working

Data is stored in my table and storage path. But it does not showing any image in my view page.? what is happening now. Did I make any mistake. Please check image src line.

My table fields are:
logo_id
company_name
company_avatar
created_at
updated_at

This is my blade file image tag code

<img class="profile-user-img img-fluid img-circle" src="{{ Storage::disk('public')->url($data->company_avatar) }}" alt="User profile picture">

Here is my controller

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
use Mail;
use Illuminate\Support\Facades\DB;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use App\User;
use App\currency;
use App\Tbl_leads;
use App\Tbl_logo;
//  Mail Controller
use App\Http\Controllers\Admin\MailController;

class LogoController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

    public function __construct() {
        $this->middleware('auth:admin');
    }


    public function index()
    {
        $data = Tbl_logo::all();
        return view('admin.companylogo.index',compact('data'));
        // return view('admin.companylogo.index');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $data = Tbl_logo::all();
        return view('admin.companylogo.create',compact('data'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $data = new Tbl_logo();
        if ($request->hasFile('company_avatar'))
        {
            $imageName = $request->company_avatar->store('public');
        }

        $data->company_name = $request->company_name;
        $data->company_avatar = $imageName;
        $data->save();
        return redirect('admin/logo')->with('successfully created or uploaded image');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        // dd($id);
        $data = Tbl_logo::find($id);
        return view('admin.companylogo.edit',compact('data'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $data = Tbl_logo::find($id);
        if ($request->hasFile('company_avatar'))
        {
            $imageName = $request->company_avatar->store('public');
        }

        $data->company_name = $request->company_name;
        $data->company_avatar = $imageName;
        $data->save();
        return redirect('admin/logo');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        // dd($id);
        $data = Tbl_logo::find($id);
        $data->delete();
        return redirect('admin/logo')->with('success', 'Deleted Successfully...!');
            }
 }
}

0 likes
7 replies
jove's avatar

Does not show as in 404? Also why don't you use any form of validation?

Neeraj1005's avatar

@jove Because there is no need of validation for me... validation I will add later, if needed. THis show only circle with this alt="User profile picture" data. No error page is occured

Snapey's avatar

have you created symlink from public directory to the storage directory?

Neeraj1005's avatar

@snapey Yes, I run this command.

php artisan storage:link 

How to solve this issue...?

Pegasus85's avatar

Try to see the url you're getting in your view

{{ dd(Storage::disk('public')->url($data->company_avatar)) }}

Then you can see if the image exist in that folder.

Please or to participate in this conversation.