mydeen
mydeen

Reputation: 15

Call to a member function move() on null in laravel

I'm new to laravel. I get the following error when uploading a file:

Call to a member function move() on null

$file = $request->file('img');
$destinationPath = base_path('\public\img');
$file->move($destinationPath . $file->getClientOriginalName());

$dealer = new Dealer([
    'firstname' => $request->get('firstname'),
    'lastname'  => $request->get('lastname'),
    'email'     => $request->get('email'),
    'phoneno'   => $request->get('phoneno'),
    'img'       => $request->get('img'),
]);

Upvotes: 0

Views: 12830

Answers (3)

kalam
kalam

Reputation: 34

It's work form me

if($request->img){
     $fileName = time() . '.' . $request->img->extension();
     $request->img->move(storage_path('app/public/img'), $fileName);
 }
$dealer = new Dealer([
    'firstname' => $request->get('firstname'),
    'lastname'  => $request->get('lastname'),
    'email'     => $request->get('email'),
    'phoneno'   => $request->get('phoneno'),
    'img'       => $fileName ?? null,
]);
$dealer->save();

Upvotes: 0

mydeen
mydeen

Reputation: 15

 if ($request->hasFile('img')) {
        $image = $request->file('img');
       //  print_r($image);
        $image_name = time().'.'.$image->getClientOriginalExtension();
       //  echo $image;
       //  exit(0);
        $destinationPath = base_path('Uploads');
        $image->move($destinationPath, $image_name);
     $dealer = new Dealer([
                 'firstname'      =>  $request->get('firstname'),
                 'lastname'       =>  $request->get('lastname'),
                 'email'          =>  $request->get('email'),
                 'phoneno'        =>  $request->get('phoneno'),
                 'img'            =>  $image_name,
             ]);
             $dealer->save();
             Session::flash('msg','Data Added successfully');
             Session::flash('type','success');
             return redirect('dealer-master');
        //         //  echo $image;
        //         //  exit(0);
        //          $destinationPath = base_path('  Uploads');
        //          $image->move($destinationPath, $image_name);
      } 
        else {                          
        Session::flash('msg','Please Check the data');
        Session::flash('type','fail');
        return redirect('dealer-master');
        // echo $request;
         }

I Findout my mistake This is working good Thank U Guys...!

Upvotes: 0

Farshad
Farshad

Reputation: 2000

Why dont You Try it like this ?

 if ($request->hasFile('img')) {
        $image = $request->file('img');
        $teaser_image = time().'.'.$image->getClientOriginalExtension();
        $destinationPath = public_path('/images');
        $image->move($destinationPath, $img);
            } else {
dd('Request Has No File');
}

and For Your Store :

 $dialer = Dialer::create([
 'firstname' => $request->get('firstname'),
    'lastname'  => $request->get('lastname'),
    'email'     => $request->get('email'),
    'phoneno'   => $request->get('phoneno'),
    'img'       => $request->get('img') ?? null,
]);

You Can remove ??null for making sure that you get The image And store it in database but You can Even place It To make it Optional for the User To insert img or not . hope this helps

EDIT

According to your comment i guess you may have 2 problems : first one be sure that you have and input that named 'img' that sends the image and the secound is that be sure to add the multi enctype to your form so that form can send image like below :

 enctype="multipart/form-data"

so your form should be like this :

<form action="someRoute" method="post" enctype="multipart/form-data">

Upvotes: 2

Related Questions