在laravel中对null调用成员函数getClientOriginalExtension()?
提交图像时,会显示以下错误: 在null上调用成员函数getClientOriginalExtension() 我不知道,错在哪里 这是我的控制器,名为在laravel中对null调用成员函数getClientOriginalExtension()?,laravel,laravel-8,Laravel,Laravel 8,提交图像时,会显示以下错误: 在null上调用成员函数getClientOriginalExtension() 我不知道,错在哪里 这是我的控制器,名为ProductController: public function store(Request $request) { $request->validate([ 'name' => 'required', 'brand' => 'required', 'detail' =
ProductController
:
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'brand' => 'required',
'detail' => 'required',
'size' => 'required',
'type' => 'required',
'price' => 'required',
'image' => 'required',
]);
$image = $request->file('image');
$new_name = rand().'.'.$image->getClientOriginalExtension();
$image->move(public_path('images'), $new_name);
$form_data = array(
'image' => $new_name,
'name' => $request->input('name'),
'size' => $request->input('size'),
'type' => $request->input('type'),
'price' => $request->input('price'),
'detail' => $request->input('detail'),
'brand' => $request->input('brand'),
);
Product::create($form_data);
return redirect()->route('product.index')->withSuccess('Done');
}
错误发生在这一行:$new_name=rand()。$image->getClientOriginalExtension()代码>
这是我提交图像的表格:
<form id="myForm" method="post" action="{{ route('product.store') }}">
@csrf
<div class="user-box">
<input type="text" name="name" required="">
<label>Name</label>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="brand" required="">
<label>Brand</label>
@error('brand')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="price" required="">
<label>Price</label>
@error('price')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box" style=" border-bottom: 1px solid white">
<span style="font-weight: bold; color: white; font-size: 16px; margin-bottom: 30px ">Size</span>
<select name="size" id="size" style="width: 40px; font-size: 16px; margin-bottom: 20px ">
<option value="50 ML">50 ML</option>
<option value="100 ML">100 ML</option>
<option value="200 ML">200 ML</option>
<option value="500 ML">500 ML</option>
<option value="1 L">1 L</option>
<option value="4 L">4 L</option>
<option value="10 L">10 L</option>
<option value="20 L">20 L</option>
</select>
@error('size')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="type" required="">
<label>Type</label>
@error('type')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="detail" required="">
<label>Detail</label>
@error('detail')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
Image<input type="file" name="image" required="">
<label>Image</label>
@error('image')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<button class="a" id="a" value="submit" name="submit">Submit</button>
</form>
@csrf
名称
@错误('名称')
{{$message}}
@恩德罗
烙印
@错误('品牌')
{{$message}}
@恩德罗
价格
@错误(‘价格’)
{{$message}}
@恩德罗
大小
50毫升
100毫升
200毫升
500毫升
1升
4升
10升
20升
@错误('大小')
{{$message}}
@恩德罗
类型
@错误('类型')
{{$message}}
@恩德罗
细节
@错误('详细信息')
{{$message}}
@恩德罗
形象
形象
@错误('图像')
{{$message}}
@恩德罗
提交
向表单标签添加属性enctype=“多部分/表单数据”
,如下所示:
<form id="myForm" method="post" action="{{ route('product.store') }}" enctype="multipart/form-data">
您的服务器没有收到您正在上载的文件
尝试将enctype='multipart/form data'添加到blade文件中的表单
<form id="myForm" method="post" action="{{ route('product.store') }}" enctype='multipart/form-data'>
当然,你的问题解决了吗?是的,我的问题解决了谢谢你的帮助