足球游戏_中国足彩网¥体育资讯$

php简单的上传类分享
来源:易贤网 阅读:871 次 日期:2016-08-22 15:18:22
温馨提示:易贤网小编为您整理了“php简单的上传类分享”,方便广大网友查阅!

本文实例为大家分享了php上传类,供大家参考,具体内容如下

<?php

class UploadFile{

  var $inputName;         //控件名

  var $allowType = array(

        'image/gif','image/jpg','image/jpeg','image/png','image/x-png','image/pjpeg'

  );                //上传类型

  var $allowSize = 2097152;  //限制大小

  var $saveDir = UPLOAD;   //保存目录

  var $isRename = true;        //是否重命名,默认为true

  var $errID = 0;           //错误代码,默认为0

  var $errMsg = "";          //错误信息

  var $savePath = "";         //保存路径

  function __construct($inputName,$allowType="",$allowSize="",$saveDir="",$isRename=true){

    if(empty($inputName)){

      $this->chk_err(-1);    //无传入控件名

    }else{

      $this->inputName = $inputName;

    }

    if(!empty($allowType)) $this->allowType = $allowType;

    if(!empty($allowSize)) $this->allowSize = $allowSize;

    if(!empty($saveDir)) $this->saveDir = $saveDir;

    if(!empty($isRename)) $this->isRename = $isRename;

  }

  function is_uploaded(){

    if(empty($_FILES[$this->inputName]['name'])){

      $this->chk_err(4);  //没有文件被上传

    }else{

      if(is_uploaded_file($_FILES[$this->inputName]['tmp_name'])){

        return true;

      }else{

        $this->chk_err(-2);    //文件上传不合法

      }

    }

  }

  function chk_type(){

    if(!in_array($_FILES[$this->inputName]['type'],$this->allowType)){

      $this->chk_err(-3);     //上传的文件类型不被允许

    }else{

      return true;

    }

  }

  function chk_size(){

    if($_FILES[$this->inputName]['size'] > $this->allowSize){

      $this->chk_(-4);     //上传的文件过大

    }else{

      return true;

    }

  }

  function move_uploaded(){    //移动上传文件

    if(!$this->is_uploaded()){

      return false;

    }

    if(!$this->chk_size()){

      return false;

    }

    if(!$this->chk_type()){

      return false;

    }

    //重命名

    if($this->isRename){

      $arrTmp = pathinfo($_FILES[$this->inputName]['name']);

      $extension = strtolower($arrTmp['extension']);

      $file_newname = date("YmdHis").rand(1000,9999)."00.".$extension; //重命名新文件, 00表示为上传的为原图

    }else{

      $file_newname = $_FILES[$this->inputName]['name'];

    }

     

    if(!file_exists($this->saveDir)){    //判断保存目录是否存在

      mkdir($this->saveDir,0777,true);  //建立保存目录

    }

    //移动文件

    $result = move_uploaded_file($_FILES[$this->inputName]['tmp_name'],$this->saveDir."/".$file_newname);

    if($result){

      $path = $this->savePath = $this->saveDir.$file_newname;    //文件的成功保存路径

      return $path;

    }else{

      $this->chk_err($_FILES[$this->inputName]['error']);

    }

   

  }

  //判断出错信息

  function chk_err($errID){

    $this->errID = $errID;

    switch($this->errID){

      case -4:

        $this->errMsg = "上传的文件过大";

        break;

      case -3:

        $this->errMsg = "上传的文件类型不被允许";

        break;

      case -2:

        $this->errMsg = "文件上传不合法";

        break;

      case -1:

        $this->errMsg = "无控件名传入";

        break;

      case 1:

        $this->errMsg = '上传的文件超出了php.ini中upload_max_filesize设定的最大值';

        break;

      case 2:

        $this->errMsg = '上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值';

        break;

      case 3:

        $this->errMsg = '文件只有部分被上传';

        break;

      case 4:

        $this->errMsg = '没有文件被上传';

        break;

      default:

        break;

    }

    return false;

   

  }

  function get_errMsg(){

    echo $this->errMsg; //输出错误信息

  }

  /**

   +----------------------------------------------------------

   * 取得图像信息

   *

   +----------------------------------------------------------

   * @static

   * @access public

   +----------------------------------------------------------

   * @param string $image 图像文件名

   +----------------------------------------------------------

   * @return mixed

   +----------------------------------------------------------

   */

  function getImageInfo($img) {

    $imageInfo = getimagesize($img);

    if( $imageInfo!== false) {

      $imageType = strtolower(substr(image_type_to_extension($imageInfo[2]),1));

      $imageSize = filesize($img);

      $info = array(

        "width"    =>$imageInfo[0],

        "height"  =>$imageInfo[1],

        "type"    =>$imageType,

        "size"    =>$imageSize,

        "mime"    =>$imageInfo['mime'],

      );

      return $info;

    }else {

      return false;

    }

  }

  /**

   +----------------------------------------------------------

   * 生成缩略图

   +----------------------------------------------------------

   * @static

   * @access public

   +----------------------------------------------------------

   * @param string $image 原图

   * @param string $type 图像格式

   * @param string $thumbname 缩略图文件名

   * @param string $maxWidth 宽度

   * @param string $maxHeight 高度

   * @param string $position 缩略图保存目录

   * @param boolean $interlace 启用隔行扫描

   * @param boolean $is_save 是否保留原图

   +----------------------------------------------------------

   * @return void

   +----------------------------------------------------------

   */

  function thumb($image,$is_save=true,$suofang=0,$type='',$maxWidth=500,$maxHeight=500,$interlace=true){

    // 获取原图信息

    $info = $this->getImageInfo($image);

     if($info !== false) {

      $srcWidth = $info['width'];

      $srcHeight = $info['height'];

      $type = empty($type)?$info['type']:$type;

      $type = strtolower($type);

      $interlace = $interlace? 1:0;

      unset($info);

      if ($suofang==1) {

        $width = $srcWidth;

        $height = $srcHeight;

      } else {

        $scale = min($maxWidth/$srcWidth, $maxHeight/$srcHeight); // 计算缩放比例

        if($scale>=1) {

          // 超过原图大小不再缩略

          $width  = $srcWidth;

          $height = $srcHeight;

        }else{

          // 缩略图尺寸

          $width = (int)($srcWidth*$scale);  //147

          $height = (int)($srcHeight*$scale);  //199

        }

      }

      // 载入原图

      $createFun = 'ImageCreateFrom'.($type=='jpg'?'jpeg':$type);

      $srcImg   = $createFun($image);

      //创建缩略图

      if($type!='gif' && function_exists('imagecreatetruecolor'))

        $thumbImg = imagecreatetruecolor($width, $height);

      else

        $thumbImg = imagecreate($width, $height);

      // 复制图片

      if(function_exists("ImageCopyResampled"))

        imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth,$srcHeight);

      else

        imagecopyresized($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth,$srcHeight);

      if('gif'==$type || 'png'==$type) {

        //imagealphablending($thumbImg, false);//取消默认的混色模式

        //imagesavealpha($thumbImg,true);//设定保存完整的 alpha 通道信息

        $background_color = imagecolorallocate($thumbImg, 0,255,0); // 指派一个绿色

        imagecolortransparent($thumbImg,$background_color); // 设置为透明色,若注释掉该行则输出绿色的图

      }

      // 对jpeg图形设置隔行扫描

      if('jpg'==$type || 'jpeg'==$type)   imageinterlace($thumbImg,$interlace);

      //$gray=ImageColorAllocate($thumbImg,255,0,0);

      //ImageString($thumbImg,2,5,5,"ThinkPHP",$gray);

      // 生成图片

      $imageFun = 'image'.($type=='jpg'?'jpeg':$type); 

      $length = strlen("00.".$type) * (-1);

      $_type = substr($image,-4);

      $length = ($type != $_type ? $length+1 : $length);

      //裁剪

      if ($suofang==1) {

         

        $thumbname01 = substr_replace($image,"01.".$type,$length);    //大头像

        $thumbname02 = substr_replace($image,"02.".$type,$length);    //小头像

        $imageFun($thumbImg,$thumbname01,100);

        $imageFun($thumbImg,$thumbname02,100);

        $thumbImg01 = imagecreatetruecolor(190,195);

        imagecopyresampled($thumbImg01,$thumbImg,0,0,$_POST['x'],$_POST['y'],190,195,$_POST['w'],$_POST['h']);

        $thumbImg02 = imagecreatetruecolor(48,48);

        imagecopyresampled($thumbImg02,$thumbImg,0,0,$_POST['x'],$_POST['y'],48,48,$_POST['w'],$_POST['h']);

        $imageFun($thumbImg01,$thumbname01,100);

        $imageFun($thumbImg02,$thumbname02,100);

//        unlink($image);

        imagedestroy($thumbImg01);

        imagedestroy($thumbImg02);

        imagedestroy($thumbImg);

        imagedestroy($srcImg);

        return array('big' => $thumbname01 , 'small' => $thumbname02);  //返回包含大小头像路径的数组

      }else{

        if($is_save == false){                      //缩略图覆盖原图,缩略图的路径还是原图路径

          $imageFun($thumbImg,$image,100);

        }else{

          $thumbname03 = substr_replace($image,"03.".$type,$length);  //缩略图与原图同时存在,

          $imageFun($thumbImg,$thumbname03,100);

          imagedestroy($thumbImg);

          imagedestroy($srcImg);

          return $thumbname03 ;          //返回缩略图的路径,字符串

        }

      }

     }

     return false;

  }

}

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

中国足彩网信息请查看网络编程
易贤网手机网站地址:php简单的上传类分享
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 足球游戏_中国足彩网¥体育资讯$ 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:易贤网
云南网警报警专用图标