Example #1
0
 /**
  * 检查上传头像信息
  * @param string $uploadformname 上传文件的表单名
  * @return boolean 不合格时返回false,错误信息见$message
  */
 public function check($uploadformname)
 {
     //获取上传的文件
     $upfile = isset($_FILES[$uploadformname]) ? $_FILES[$uploadformname] : null;
     if (empty($upfile)) {
         self::$message = '没有提交图像';
         return false;
     }
     if (!is_uploaded_file($upfile['tmp_name'])) {
         self::$message = '图片不存在';
         return false;
     }
     if ($upfile['error'] != 0) {
         self::$message = '上传文件出错(' . $upfile['error'] . ')';
         return false;
     }
     //图像类型
     $imgtype = filesize($upfile['tmp_name']) > 11 ? exif_imagetype($upfile['tmp_name']) : false;
     if (!$imgtype) {
         self::$message = '上传文件格式非图片';
         return false;
     }
     if (!in_array($imgtype, $this->_extension)) {
         self::$message = '上传的图片格式不允许';
         return false;
     }
     $size = getimagesize($upfile['tmp_name']);
     if (!empty($this->_width) && $size[0] > $this->_width) {
         self::$message = '图片宽度超出限制';
         return false;
     }
     if (!empty($this->_height) && $size[1] > $this->_height) {
         self::$message = '图片高度超出限制';
         return false;
     }
     if (!empty($this->_minsize) && $upfile['size'] < $this->_minsize) {
         self::$message = '图片文件太小';
         return false;
     }
     if ($upfile['size'] > $this->_maxsize) {
         self::$message = '图片文件太大';
         return false;
     }
     //处理存储文件名
     if (empty($this->_savename)) {
         $this->_savename = md5(uniqid(microtime(), true));
     }
     $typeArr = array_flip($this->_extension);
     //加上文件名后缀
     $this->_savename .= '.' . $typeArr[$imgtype];
     return true;
 }