请问为什么一直显示if($res) return $res;报错?

来源:2-4 PHP多文件上传案例实战

weixin_慕沐1043483

2019-07-25 05:58

我明明用的是老师的代码,但是运行的时候就是一直报错。请问这是为什么啊?

function uploadFile($fileInfo,$path='./uploads',$flag=true,$maxSize=1048576,$allowExt=array('jpeg','jpg','png','gif')){
   //$flag=true;
   //$allowExt=array('jpeg','jpg','gif','png');
   //$maxSize=1048576;//1M
   //判断错误号
   if($fileInfo['error']===UPLOAD_ERR_OK){
      //检测上传得到小
      if($fileInfo['size']>$maxSize){
         $res['mes']=$fileInfo['name'].'上传文件过大';
      }
      $ext=getExt($fileInfo['name']);
      //检测上传文件的文件类型
      if(!in_array($ext,$allowExt)){
         $res['mes']=$fileInfo['name'].'非法文件类型';
      }
      //检测是否是真实的图片类型
      if($flag){
         if(!getimagesize($fileInfo['tmp_name'])){
            $res['mes']=$fileInfo['name'].'不是真实图片类型';
         }
      }
      //检测文件是否是通过HTTP POST上传上来的
      if(!is_uploaded_file($fileInfo['tmp_name'])){
         $res['mes']=$fileInfo['name'].'文件不是通过HTTP POST方式上传上来的';
      }
      if($res) return $res;
      //$path='./uploads';
      if(!file_exists($path)){
         mkdir($path,0777,true);
         chmod($path,0777);
      }
      $uniName=getUniName();
      $destination=$path.'/'.$uniName.'.'.$ext;
      if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){
         $res['mes']=$fileInfo['name'].'文件移动失败';
      }
      $res['mes']=$fileInfo['name'].'上传成功';
      $res['dest']=$destination;
      return $res;


写回答 关注

1回答

  • boywild
    2019-09-01 18:35:56
    $res这个变量需要提前申明,在顶部申明即可$res=null;

PHP实现文件上传与下载

本课程讲解了文件上传的原理和配置,学会两种方式实现文件上传与下载

43735 学习 · 328 问题

查看课程

相似问题