在Laravel中对null调用成员函数move()

时间:2019-07-13 08:04:50

标签: laravel file-upload

我是laravel的新手。上传文件时出现以下错误:

  

在null上调用成员函数move()

$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'),
]);

2 个答案:

答案 0 :(得分:0)

您为什么不这样尝试呢?

 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');
}

并针对您的商店:

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

您可以删除null以确保获得该图像并将其存储在数据库中,但是您甚至可以将其放置为使其可选,以供用户插入或不插入img。希望对您有帮助

编辑

根据您的评论,我想您可能有2个问题: 首先,请确保您具有并输入了名为“ img”的图像,然后发送该图像,请确保将多enctype添加到您的表单中,以便表单可以像下面这样发送图像:

 enctype="multipart/form-data"

所以您的表格应该像这样:

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

答案 1 :(得分:0)

 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;
         }

我发现了我的错误,这很好,谢谢大家!!