问题描述
在 null 时调用成员函数 getClientOriginalExtension()
这是我在刀片视图中的表单
<form data-parsley-validate action="{{ route('kunstenaars.store') }}" method="post" enctype="multipart/form">
@csrf
<div class="form-row">
<div class="col form-group">
<label for="foto">Foto van kunstenaar:</label>
<input name="foto" id="foto" class="form-control foto" type="file" accept=".jpg,.jpeg,.png,.svg,.ico">
</div>
</div>
<button type="submit" class="btn btn-lg btn-block btn-primary">Aanmaken</button>
</form>
在我的控制器中:
$kunstenaar = new Kunstenaar();
$avatar = $request->file('foto');
$extension = $avatar->extension();
$filename = time() . '.' . $extension;
$location = public_path('/images/kunstenaars/' . $filename);
Image::make($avatar)->resize(800,400)->save($location);
我正在使用干预图像。如果我在没有扩展名的情况下尝试它,我会得到这个
干预\图像\异常\NotReadableException: 图片来源不可读
解决方法
enctype 属性应该是 multipart/form-data
因此使用以下内容更新表单元素
enctype='multipart/form-data'
顺便说一句,您应该在提交表单请求之前实现验证逻辑。