我是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'),
]);
答案 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;
}
我发现了我的错误,这很好,谢谢大家!!