/*----------------------------------------------------------------------------------  *   *----------------------------------------------------------------------------------   */ class image_up{  //定义基本参数  private $uptype=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png');  //上传文件类型  private $max_file_size=102400;    //上传大小限制(单位:KB)  private $destination_folder="up/"; //上传文件路径  private $watermark=1;              //是否附加水印  private $watertype=1;              //水印类型(1为文字,2为图片)  private $waterposition=1;          //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);  private $waterstring=null;         //水印字符串  private $waterimg=null;            //水印图片  private $imgpreview=1;             //是否生成预览图(1为生成,其他为不生成);  private $imgpreviewsize=1;         //预览图比例,0为按固定宽和高显示,其他为比例显示  private $imgwidth=200;             //预览图固定宽度  private $imgheight=200;            //预览图固定高度  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  private $imgthu=1;                     //是否生成且保存略缩图,1为生成,0为不生成  private $imgthu_folder=null;           //略缩图保存路径,默认与文件路径一致  private $imgthu_fixed=0;               //略缩图是否使用固定宽高,1为使用,0为灵活变动  private $imgthu_width=200;             //略缩图宽度  private $imgthu_height=200;            //略缩图高度    private $imgthu_name=null;             //略缩图名称  //******************************************************************************************************************  private $inputname="upfile";       //文件上传框名称  //******************************************************************************************************************  private $img_preview_display;      //图片预览图显示  //******************************************************************************************************************  //文件上传相关信息,1为文件不存在,2为类型不符合,3为超出大小限制,4为上传失败,0为上传成功  private $file_up_info=null;  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  //可在外部获取上传文件基本信息  private $file_name;         //客服端文件的原名称  private $file_type;         //文件的MIME类型  private $file_size;         //已上传文件的大小,单位/字节  private $file_tmp_name;     //储存的临时文件名  private $file_error;        //该文件上传相关错误代码  private $img_size;          //取得图片的长宽  private $file_basename;     //获取带扩展名的全名  private $file_extension;    //获取文件扩展名  private $filename;          //文件名(不带扩展名)  private $destination;       //问价路径加名称  //******************************************************************************************************************  public function __set($propety_name,$value){   https://www.gxlcms.com/$this->$propety_name=$value;  }  public function __get($property_name){   if(isset(https://www.gxlcms.com/$this->$property_name))   return(https://www.gxlcms.com/$this->$property_name);   else return(NULL);  }  //******************************************************************************************************************  //定义文件上传功能  public function up(){   //判断文件是否存在   if(!is_uploaded_file($_FILES[https://www.gxlcms.com/$this->inputname]["tmp_name"])){    https://www.gxlcms.com/$this->file_up_info=1;    return;   }   //获取并赋值相应基本参数   $upfile=$_FILES[https://www.gxlcms.com/$this->inputname];   https://www.gxlcms.com/$this->file_name=$upfile["name"];   https://www.gxlcms.com/$this->file_type=$upfile["type"];   https://www.gxlcms.com/$this->file_size=$upfile["size"];   https://www.gxlcms.com/$this->file_tmp_name=$upfile["tmp_name"];   https://www.gxlcms.com/$this->file_error=$upfile["error"];   //检查文件类型是否符合   if(!in_array(https://www.gxlcms.com/$this->file_type,https://www.gxlcms.com/$this->uptype)){    https://www.gxlcms.com/$this->file_up_info=2;    return;   }   //检查文件大小是否超出限制   if(https://www.gxlcms.com/$this->file_size>https://www.gxlcms.com/$this->max_file_size){    https://www.gxlcms.com/$this->file_up_info=3;    return;   }   //判断目录是否存在   if(!file_exists(https://www.gxlcms.com/$this->destination_folder))   mkdir(https://www.gxlcms.com/$this->destination_folder);   //进一步取得图片的信息并赋值   https://www.gxlcms.com/$this->img_size=getimagesize(https://www.gxlcms.com/$this->file_tmp_name);   $pathinfo=pathinfo(https://www.gxlcms.com/$this->file_name);   https://www.gxlcms.com/$this->file_extension=$pathinfo["extension"];    //获取文件扩展名   https://www.gxlcms.com/$this->file_basename=$pathinfo["basename"];      //获取带扩展名的全名   https://www.gxlcms.com/$this->filename=$pathinfo["filename"];           //文件名(不带扩展名)   $filename2=$pathinfo['filename'];   https://www.gxlcms.com/$this->destination = https://www.gxlcms.com/$this->destination_folder.https://www.gxlcms.com/$this->filename.".".https://www.gxlcms.com/$this->file_extension;   //判断文件名是否存在,如果存在则重命名   $n=1;   while (file_exists(https://www.gxlcms.com/$this->destination)){    while (file_exists(https://www.gxlcms.com/$this->destination)){     $n++;     https://www.gxlcms.com/$this->filename=https://www.gxlcms.com/$this->filename."(".$n.")";     https://www.gxlcms.com/$this->destination = https://www.gxlcms.com/$this->destination_folder.https://www.gxlcms.com/$this->filename.".".https://www.gxlcms.com/$this->file_extension;    }    https://www.gxlcms.com/$this->filename=$filename2."(".$n.")";    https://www.gxlcms.com/$this->destination = https://www.gxlcms.com/$this->destination_folder.https://www.gxlcms.com/$this->filename.".".https://www.gxlcms.com/$this->file_extension;   }   //移动上传的文件   if(move_uploaded_file(https://www.gxlcms.com/$this->file_tmp_name,https://www.gxlcms.com/$this->destination))   https://www.gxlcms.com/$this->file_up_info=0;   else https://www.gxlcms.com/$this->file_up_info=4;       //添加水印   if(https://www.gxlcms.com/$this->watermark==1){    https://www.gxlcms.com/$this->imgthu();   }   //生成略缩图   if(https://www.gxlcms.com/$this->imgthu==1){    https://www.gxlcms.com/$this->add_watermark();   }   //生成预览图   if(https://www.gxlcms.com/$this->imgpreviewsize == 0){    if(https://www.gxlcms.com/$this->img_size["0"]imgwidth) https://www.gxlcms.com/$this->imgwidth=https://www.gxlcms.com/$this->img_size["0"];    if(https://www.gxlcms.com/$this->img_size["1"]imgheight) https://www.gxlcms.com/$this->imgheight=https://www.gxlcms.com/$this->img_size["1"];   }else{    https://www.gxlcms.com/$this->imgwidth=https://www.gxlcms.com/$this->img_size["0"]*https://www.gxlcms.com/$this->imgpreviewsize;    https://www.gxlcms.com/$this->imgheight=https://www.gxlcms.com/$this->img_size["1"]*https://www.gxlcms.com/$this->imgpreviewsize;   }   https://www.gxlcms.com/$this->img_preview_display="                                     alt="图片预览:r文件名":https://www.gxlcms.com/$this->file_tmp_name />";  } //==================================================================================================================== //====================================================================================================================   //生成略缩图功能  function imgthu(){   if(https://www.gxlcms.com/$this->imgthu_folder==null)     https://www.gxlcms.com/$this->imgthu_folder=https://www.gxlcms.com/$this->destination_folder;      //https://www.gxlcms.com/$this->imgthu_name=https://www.gxlcms.com/$this->filename."_t.".https://www.gxlcms.com/$this->file_extension;   $imgthu_name_b=https://www.gxlcms.com/$this->filename."_t";   $imgthu_name_b2=https://www.gxlcms.com/$this->filename."_t";   $destination_b=https://www.gxlcms.com/$this->imgthu_folder.$imgthu_name_b.".".https://www.gxlcms.com/$this->file_extension;      //判断文件名是否存在,如果存在则重命名   $n=1;   while (file_exists($destination_b)){    while (file_exists($destination_b)){     $n++;     $imgthu_name_b=$imgthu_name_b."(".$n.")";     $destination_b = https://www.gxlcms.com/$this->imgthu_folder.$imgthu_name_b.".".https://www.gxlcms.com/$this->file_extension;    }    $imgthu_name_b=$imgthu_name_b2."(".$n.")";    $destination_b = https://www.gxlcms.com/$this->imgthu_folder.$imgthu_name_b.".".https://www.gxlcms.com/$this->file_extension;   }         $imginfo=getimagesize(https://www.gxlcms.com/$this->destination);   switch($imginfo[2])   {    case 1:     $in=@imagecreatefromgif(https://www.gxlcms.com/$this->destination);     break;    case 2:     $in=@imagecreatefromjpeg(https://www.gxlcms.com/$this->destination);     break;    case 3:     $in=@imagecreatefrompng(https://www.gxlcms.com/$this->destination);     break;    case 6:     $in =@imagecreatefrombmp(https://www.gxlcms.com/$this->destination);     break;    default:     break;   }   //计算略缩图长宽   if(https://www.gxlcms.com/$this->imgthu_fixed==0){    if(https://www.gxlcms.com/$this->imgthu_height>($imginfo[1]/$imginfo[0])*https://www.gxlcms.com/$this->imgthu_width)     https://www.gxlcms.com/$this->imgthu_width = ($imginfo[0]/$imginfo[1])*https://www.gxlcms.com/$this->imgthu_height;    else     https://www.gxlcms.com/$this->imgthu_height=($imginfo[1]/$imginfo[0])*https://www.gxlcms.com/$this->imgthu_width;   }   $new = imageCreateTrueColor(https://www.gxlcms.com/$this->imgthu_width,https://www.gxlcms.com/$this->imgthu_height);   ImageCopyResized($new,$in,0,0,0,0,https://www.gxlcms.com/$this->imgthu_width,https://www.gxlcms.com/$this->imgthu_height,$imginfo[0],$imginfo[1]);   switch ($imginfo[2])   {    case 1:     imagejpeg($new,$destination_b);     break;    case 2:     imagejpeg($new,$destination_b);     break;    case 3:     imagepng($new,$destination_b);     break;    case 6:     imagewbmp($new,$destination_b);     break;   }  } //==================================================================================================================== //====================================================================================================================   //添加水印功能  function add_watermark(){   //1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),   //8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。   $imginfo=getimagesize(https://www.gxlcms.com/$this->destination);   $im=imagecreatetruecolor(https://www.gxlcms.com/$this->img_size[0],https://www.gxlcms.com/$this->img_size[1]);       //创建真彩色   $white=imagecolorallocate($im,255,255,255);                            //设置颜色   $black=imagecolorallocate($im,0,0,0);   $red=imagecolorallocate($im,255,0,0);   //在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。   imagefill($im,0,0,$white);   switch($imginfo[2])   {    case 1:     $simage =imagecreatefromgif(https://www.gxlcms.com/$this->destination);      // 创建一个新的形象,从文件或 URL     break;    case 2:     $simage =imagecreatefromjpeg(https://www.gxlcms.com/$this->destination);     break;    case 3:     $simage =imagecreatefrompng(https://www.gxlcms.com/$this->destination);     break;    case 6:     $simage =imagecreatefromwbmp(https://www.gxlcms.com/$this->destination);     break;    default:     echo ("不支持的文件类型");     break;   }   if(!empty($simage))   {    //位置设置    if(https://www.gxlcms.com/$this->watertype==1){     $str_len=strlen(https://www.gxlcms.com/$this->waterstring);        $str_width=$str_len*10;        $str_height=20;    }elseif(https://www.gxlcms.com/$this->watertype==1 && file_exists(https://www.gxlcms.com/$this->waterimg)){     $iinfo=getimagesize(https://www.gxlcms.com/$this->waterimg);     $str_width = $iinfo[0];     $str_height = $iinfo[1];    }        switch (https://www.gxlcms.com/$this->waterposition){     case 1:      $p_x=5;      $p_y=https://www.gxlcms.com/$this->img_size[1]-$str_height;      break;     case 2:      $p_x=https://www.gxlcms.com/$this->img_size[0]-$str_width;      $p_y=https://www.gxlcms.com/$this->img_size[1]-$str_height;      break;     case 3:      $p_x=5;      $p_y=0;      break;     case 4:      $p_x=https://www.gxlcms.com/$this->img_size[0]-$str_width;      $p_y=5;      break;     case 5:      $p_x=(https://www.gxlcms.com/$this->img_size[0]-$str_width)/2;      $p_y=(https://www.gxlcms.com/$this->img_size[1]-$str_height)/2;      break;    }    imagecopy($im,$simage,0,0,0,0,https://www.gxlcms.com/$this->img_size[0],https://www.gxlcms.com/$this->img_size[1]);   //拷贝图像的一部分    //imagefilledrectangle($im,1,https://www.gxlcms.com/$this->img_size[1]-15,130,https://www.gxlcms.com/$this->img_size[1],$white);  //将图片的封闭长方形区域着色    switch(https://www.gxlcms.com/$this->watertype)    {     case 1:   //加水印字符串      imagestring($im,10,$p_x,$p_y,https://www.gxlcms.com/$this->waterstring,$red);      break;     case 2:   //加水印图片      $simage1 =imagecreatefromgif(https://www.gxlcms.com/$this->waterimg);      imagecopy($im,$simage1,0,0,0,0,85,15);      imagedestroy($simage1);      break;    }    switch ($imginfo[2])    {     case 1:      //imagegif($nimage, $destination);      imagejpeg($im, https://www.gxlcms.com/$this->destination);      break;     case 2:      imagejpeg($im, https://www.gxlcms.com/$this->destination);      break;     case 3:      imagepng($im, https://www.gxlcms.com/$this->destination);      break;     case 6:      imagewbmp($im, https://www.gxlcms.com/$this->destination);      break;    }    //覆盖原上传文件    imagedestroy($im);    imagedestroy($simage);   }  } } ?>  |