Laravel 文件上传:未检测到文件

问题描述

尝试将图像上传数据库时出现错误

在 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'

顺便说一句,您应该在提交表单请求之前实现验证逻辑。