_Zaman's avatar

Call to a member function getClientOriginalName() on null

I am trying to upload an image and store it to DB. but it's showing me "Call to a member function getClientOriginalName() on null" I don't know why?

public function visitorStore(Request $request) {
    $this->validate($request,[
            
            
            'visitorName'=> 'required',
            'organization' => 'required',
            'email' => 'required|unique:visitors|max:255',          
            'mobile' => 'required|unique:visitors|max:255',
            'vImage'  => 'required'
            
        ]);

            $visitor = new Visitor();

            $visitor->visitorName = $request->visitorName;
            
            $visitor->organization = $request->organization;
            $visitor->email = $request->email;
            $visitor->mobile = $request->mobile;

                 $visitor->vImage = $request->hasFile('vImage');
                 $image = $request->file('vImage');
                 $name = $image->getClientOriginalName();
                 $size = $image->getClientSize();
                 $destinationPath = public_path('public/assets/img/');
                 $image->move($destinationPath, $name); 
            

            $visitor->save();

        return redirect(route('visitor'))->with('successMsg','visitor added successfully');
    
    }
0 likes
7 replies
_Zaman's avatar
public function visitorStore(Request $request) {
    $this->validate($request,[
            
            
            'visitorName'=> 'required',
            'organization' => 'required',
            'email' => 'required|unique:visitors|max:255',          
            'mobile' => 'required|unique:visitors|max:255',
            'vImage'  => 'required'
            
        ]);

            $visitor = new Visitor();

            $visitor->visitorName = $request->visitorName;
            
            $visitor->organization = $request->organization;
            $visitor->email = $request->email;
            $visitor->mobile = $request->mobile;

            $visitor->vImage = $request->hasFile('vImage');
            $image = $request->file('vImage');
            $name = $image->getClientOriginalName();
            $size = $image->getClientSize();
            $destinationPath = public_path('public/assets/img/');
            $image->move($destinationPath, $name); 
            

            $visitor->save();

        return redirect(route('visitor'))->with('successMsg','visitor added successfully');
    
    }
tykus's avatar
tykus
Best Answer
Level 104

Make sure that your form has the enctype="multipart/form-data" attribute.

_Zaman's avatar

@tykus thank you very much. Now my image is uploading and I can find it in my folder. But I am confused about one thing that there is nothing showing in my db table? so how can I display it and find which visitor has which image?

Snapey's avatar

There are so many tutorials and previous questions about adding images.

Sorry, I'm bored answering these.

tykus's avatar

You are assigning a boolean here...

$visitor->vImage = $request->hasFile('vImage');

.. which isn't very useful! You need to store the destination path and filename instead.

Like @Snapey says, there are tonnes of examples of your problem here.

Please or to participate in this conversation.