www.adminn.cn
站长正能量分享网!

php 图片上传代码,具有生成缩略图与增加水印功能

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

这款图片上传源代码是一款可以上传图片并且还具有给上传的图片生成缩略图与增加水印功能,可以说是一款完美的图片上传类,实例代码如下:

  1. <!–?php 
  2.  
  3. class upfile { 
  4.  public $filepath = "www.phpfensi.com/"//上传文件存放文件夹 
  5.  
  6.  public $filesize = 1000000; //允许上传的大小 
  7.  
  8.  //如果要修改允许上传文件的类型  请搜索 【 switch ($upfiletype) { //文件类型  】 
  9.  
  10.  public $reimagesize = array ( 
  11.   true, //是否生成缩略图 
  12.   400, //缩略图宽 
  13.   300,//缩略图高 
  14.   "" //缩略图存放文件夹 如果为空和当前要生成缩略图的文件在同一目录 文件前缀r_ 
  15.  ); //是否生成缩略图 array(生成或不生成,缩略图宽,缩略图高,存放文件夹); 注意:存放文件夹后跟 '/' 
  16.  
  17.  public $india = true; //是否打水印 true打 false不打 
  18.  
  19.  public $indiaimage = ""//水印图片地址为空则不打图片水印 如果有文字水印建议不要开启图片水印 
  20.  
  21.  public $indiaimagex = 100; //图片距离图片左边距离 
  22.  
  23.  public $indiaimagey = 10; //图片距离图片上面距离 
  24.  
  25.  public $indiatext = "www.phpfensi.com"//水印文字 
  26.  
  27.  public $fontsize = 6; //水印文字大小,1最小6最大 
  28.  
  29.  public $indiatextx = 10; //文字距离图片左边距离 
  30.  
  31.  public $indiatexty = 10; //文字距离图片上面距离 
  32.  
  33.  public $r = 250; //图片颜色三原色 $r红 
  34.  
  35.  public $g = 250; //$g绿 
  36.  
  37.  public $b = 250; //$b蓝 
  38.  
  39.  public $indiapath = ""//加了水印的图片保存路径,如果为空就直接替代原来的图片 
  40.  
  41.  //开始上传处理 
  42.  function uploadfile($upfile) { 
  43.   if ($upfile == "") { 
  44.    die("uploadfile:参数不足"); 
  45.   } 
  46.   if (!file_exists($this->filepath)) { 
  47.    mkdir($this->filepath); 
  48.   } 
  49.   $upfiletype = $upfile['type']; 
  50.   $upfilesize = $upfile['size']; 
  51.   $upfiletmpname = $upfile['tmp_name']; 
  52.   $upfilename = $upfile['name']; 
  53.   $upfileerror = $upfile['error']; 
  54.   if ($upfilesize > $this->filesize) { 
  55.    return false; //文件过大 
  56.   } 
  57.   switch ($upfiletype) { //文件类型 
  58.    case 'image/jpeg' : 
  59.     $type = 'jpg'
  60.     break
  61.    case 'image/pjpeg' : 
  62.     $type = 'jpg'
  63.     break
  64.    case 'image/png' : 
  65.     $type = 'png'
  66.     break
  67.    case 'image/gif' : 
  68.     $type = 'gif'
  69.     break
  70.   } 
  71.   if (!isset ($type)) { 
  72.    return false; //不支持此类型 
  73.   } 
  74.   if (!is_uploaded_file($upfiletmpnameor !is_file($upfiletmpname)) { 
  75.    return false; 
  76.    ; //文件不是经过正规上传的; 
  77.   } 
  78.   if ($this->upfileerror != 0) { 
  79.    return false; //其他错误 
  80.   } 
  81.   if ($this->upfileerror == 0) { 
  82.    if (!file_exists($upfiletmpname)) { 
  83.     return false; //临时文件不存在 
  84.    } else { 
  85.     $filename = date("ymdhis", time() + 3600 * 8); //图片已当前时间命名 
  86.     $filename = $this->filepath . $filename . "." . $type
  87.     if (!move_uploaded_file($upfiletmpname$filename)) { 
  88.      return false; //文件在移动中丢失 
  89.     } else { 
  90.      if ($this->india == true) { 
  91.       $this->goindia($filename$type,true); 
  92.      } else { 
  93.       if ($this->reimagesize[0] == true) { 
  94.        $this->goreimagesize($filename$type); 
  95.       } else { 
  96.        return true; //上传成功! 
  97.        unlink($upfiletmpname); 
  98.       } 
  99.      } 
  100.     } 
  101.  
  102.    } 
  103.   } 
  104.  
  105.  } 
  106.  //添加水印处理 
  107.  function goindia($filename$filetype,$reimage=false) { 
  108.   if (!file_exists($filename)) { 
  109.    $this->reerror(7); //要添加水印的文件不存在 
  110.   } else { 
  111.    if ($filetype == "jpg") { 
  112.     $im = imagecreatefromjpeg($filename); 
  113.    } else 
  114.     if ($filetype == "gif") { 
  115.      $im = imagecreatefromgif($filename); 
  116.     } else 
  117.      if ($filetype == "png") { 
  118.       $im = imagecreatefrompng($filename); 
  119.      } 
  120.    if ($this->indiatext != "") { //如果水印文字不为空 
  121.     $textcolor = imagecolorallocate($im$this->r, $this->g, $this->b); //设置文字颜色 
  122.     imagestring($im$this->fontsize, $this->indiatextx, $this->indiatexty, $this->indiatext, $textcolor); //将文字写入图片 
  123.    } 
  124.    if ($this->indiaimage != "") {//如果水印图片不为空 
  125.     $indiaimagetype = getimagesize($this->indiaimage); 
  126.     $logow = $indiaimagetype[0]; //得到水印图片的宽 
  127.     $logoh = $indiaimagetype[1]; //得到水印图片的高 
  128.     switch ($indiaimagetype[2]) { //判断水印图片的格式 
  129.      case 1 : 
  130.       $indiaimagetype = "gif"
  131.       $logo = imagecreatefromgif($this->indiaimage); 
  132.       break
  133.      case 2 : 
  134.       $indiaimagetype = "jpg"
  135.       $logo = imagecreatefromjpeg($this->indiaimage); 
  136.       break
  137.      case 3 : 
  138.       $indiaimagetype = "png"
  139.       $logo = imagecreatefrompng($this->indiaimage); 
  140.       break
  141.     } 
  142.     imagealphablending($im, true); //打开混色模式 
  143.     imagecopy($im$logo$this->indiaimagex, $this->indiaimagey, 0, 0, $logow$logoh); 
  144.     imagedestroy($im); 
  145.     imagedestroy($logo); 
  146.    } 
  147.   } 
  148.   if ($this->indiapath == "") { //如果水印存放地址不为空 
  149.    if ($filetype == "jpg") { 
  150.     imagejpeg($im$filename); 
  151.    } else 
  152.     if ($filetype == "gif") { 
  153.      imagegif($im$filename); 
  154.     } else 
  155.      if ($filetype == "png") { 
  156.       imagepng($im$filename); 
  157.      } 
  158.    if($reimage == true){ 
  159.     $this->goreimagesize($filename,$filetype); 
  160.    }else
  161.     return true; //添加水印成功 
  162.    } 
  163.   } else { 
  164.    if (!file_exists($this->indiapath)) { 
  165.     mkdir($this->indiapath); 
  166.     return false; //请重新上传 
  167.    } else { 
  168.     $indianame = basename($filename); 
  169.     $indianame = $this->indiapath . $indianame
  170.     if ($filetype == "jpg") { 
  171.      imagejpeg($im$indianame); 
  172.     } else 
  173.      if ($filetype == "gif") { 
  174.       imagegif($im$indianame); 
  175.      } else 
  176.       if ($filetype == "png") { 
  177.        imagepng($im$indianame); 
  178.       } 
  179.     if($reimage == true){ 
  180.      $this->goreimagesize($indianame,$filetype); 
  181.      echo $indianame
  182.     }else
  183.      return true; //添加水印成功 
  184.     } 
  185.    } 
  186.   } 
  187.  } 
  188.  function goreimagesize($filename$filetype) { 
  189.   if (!file_exists($filename)) { 
  190.    return false; //要生成缩略图的图片不存在 
  191.   } else { 
  192.    if ($filetype == 'jpg') { 
  193.     $reimage = imagecreatefromjpeg($filename); 
  194.    } 
  195.    elseif ($filetype == 'png') { 
  196.     $reimage = imagecreatefrompng($filename); 
  197.    } else 
  198.     if ($filetype == 'gif') { 
  199.      $reimage = imagecreatefromgif($filename); 
  200.     } 
  201.    if (isset ($reimage)) { 
  202.     $srcimagetype = getimagesize($filename); 
  203.     $srcimagetypew = $srcimagetype[0]; //得到原始图片宽度 
  204.     $srcimagetypeh = $srcimagetype[1]; //得到原始图片高度 
  205.     $reim = imagecreatetruecolor($this->reimagesize[1], $this->reimagesize[2]); 
  206.     imagecopyresized($reim$reimage, 0, 0, 0, 0, $this->reimagesize[1], $this->reimagesize[2], $srcimagetypew$srcimagetypeh); 
  207.     $reimagepath = $this->reimagesize[3]; 
  208.     if ($reimagepath != "") { //如果存放水印地址不为空 
  209.      if (!file_exists($reimagepath)) { 
  210.       mkdir($reimagepath); 
  211.      } else { 
  212.       $reimagename = basename($filename); 
  213.       $reimagename = $reimagepath . "r_" . $reimagename
  214.       if ($filetype == "gif"
  215.        imagegif($reim$reimagename); 
  216.       else 
  217.        if ($filetype == "jpg"
  218.         imagejpeg($reim$reimagename); 
  219.        else 
  220.         if ($filetype == "png"
  221.          imagepng($reim$reimagename); 
  222.       return true; 
  223.      } 
  224.     } else { 
  225.      $filename = basename($filename); 
  226.      if($this->indiapath == ""){ 
  227.       $filename = $this->filepath."r_" . $filename
  228.      }else
  229.       $filename = $this->indiapath."r_" . $filename
  230.      } 
  231.      if ($filetype == "gif"
  232.       imagegif($reim$filename); 
  233.      else 
  234.       if ($filetype == "jpg"
  235.        imagejpeg($reim$filename); 
  236.       else 
  237.        if ($filetype == "png"
  238.         imagepng($reim$filename); 
  239.      return true; 
  240.     } 
  241.  
  242.    } 
  243.   } 
  244.  } 
  245.  
  246. if ($_post["submit"]) { 
  247.  $file = $_files['uploadfile']; 
  248.  $upfile = new upfile(); 
  249.  echo $upfile->uploadfile($file); 
  250. }//开源代码phpfensi.com 
  251. ?> 
  252.   <form action=""</form action= method="post" enctype="multipart/form-data"
  253.   <input type="file"</input type= name="uploadfile"/>
     
  254.   <input type="submit"</input type= value="上传" name="submit"/> 
  255.    

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php 图片上传代码,具有生成缩略图与增加水印功能》
文章链接:https://www.adminn.cn/news/8082.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏