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

qgzx9mmu  于 2022-12-27  发布在  其他
关注(0)|答案(3)|浏览(143)

我是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'),
]);
hmae6n7t

hmae6n7t1#

你为什么不试试这样做呢?

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

你可以删除??空,以确保你得到的图像,并将其存储在数据库中,但你甚至可以将其放置,使其可选的用户插入img与否。希望这有帮助

    • 编辑**

根据你的评论,我猜你可能有两个问题:第一个是要确保你有和输入的命名'img'发送图像和secound是要确保添加多enctype到您的形式,使形式可以发送图像如下:

enctype="multipart/form-data"

因此您表单应该如下所示:

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

brjng4g32#

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

我发现我的错误这是工作很好谢谢你们伙计们...!

li9yvcax

li9yvcax3#

这是我的工作

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();

相关问题