Call to a member function validate() on null

问题原因:
在使用thinkphp做开发时难免会遇到一些小问题,这个问题的原因就是没有上传图片

$info = $file->validate(['size'=>10*1024*1024,'ext'=>['jpg','png','gif']])
     ->move(ROOT_PATH . 'public' . DS . 'uploads');

这里调用 validate函数 没有接收到值导致报错
解决方案:
我们可以在图片上传函数的最外层加上一个判断

if($_FILES['thumb']['tmp_name']){

}

判断图片信息是否存在如果存在就去执行图片上传方法
最终代码

if($_FILES['thumb']['tmp_name']){
     $file = request()->file('thumb');
     //将文件移动到指定的目录
     $info = $file->validate(['size'=>10*1024*1024,'ext'=>['jpg','png','gif']])
     ->move(ROOT_PATH . 'public' . DS . 'uploads');
     if(empty($info)){
         $this->error('上传失败');
     }
     //拼接图片访问路径
     $logo = DS . 'uploads' . DS . $info->getSaveName();
     //生成缩略图
     $image = \think\Image::open('.' . $logo);
     $image->thumb(165,124)->save('.' . $logo);
     // return $logo;
     $params['thumb'] = $logo;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值