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

 

 代码如下 复制代码

class upfile {
 public $filepath = "www.111cn.net/"; //上传文件存放文件夹

 public $filesize = 1000000; //允许上传的大小

 //如果要修改允许上传文件的类型  请搜索 【 switch ($upfiletype) { //文件类型  】

 public $reimagesize = array (
  true, //是否生成缩略图
  400, //缩略图宽
  300,//缩略图高
  "" //缩略图存放文件夹 如果为空和当前要生成缩略图的文件在同一目录 文件前缀r_
 ); //是否生成缩略图 array(生成或不生成,缩略图宽,缩略图高,存放文件夹); 注意:存放文件夹后跟 '/'

 public $india = true; //是否打水印 true打 false不打

 public $indiaimage = ""; //水印图片地址为空则不打图片水印 如果有文字水印建议不要开启图片水印

 public $indiaimagex = 100; //图片距离图片左边距离

 public $indiaimagey = 10; //图片距离图片上面距离

 public $indiatext = "www.111cn.net"; //水印文字

 public $fontsize = 6; //水印文字大小,1最小6最大

 public $indiatextx = 10; //文字距离图片左边距离

 public $indiatexty = 10; //文字距离图片上面距离

 public $r = 250; //图片颜色三原色 $r红

 public $g = 250; //$g绿

 public $b = 250; //$b蓝

 public $indiapath = ""; //加了水印的图片保存路径,如果为空就直接替代原来的图片

 //开始上传处理
 function uploadfile($upfile) {
  if ($upfile == "") {
   die("uploadfile:参数不足");
  }
  if (!file_exists($this->filepath)) {
   mkdir($this->filepath);
  }
  $upfiletype = $upfile['type'];
  $upfilesize = $upfile['size'];
  $upfiletmpname = $upfile['tmp_name'];
  $upfilename = $upfile['name'];
  $upfileerror = $upfile['error'];
  if ($upfilesize > $this->filesize) {
   return false; //文件过大
  }
  switch ($upfiletype) { //文件类型
   case 'image/jpeg' :
    $type = 'jpg';
    break;
   case 'image/pjpeg' :
    $type = 'jpg';
    break;
   case 'image/png' :
    $type = 'png';
    break;
   case 'image/gif' :
    $type = 'gif';
    break;
  }
  if (!isset ($type)) {
   return false; //不支持此类型
  }
  if (!is_uploaded_file($upfiletmpname) or !is_file($upfiletmpname)) {
   return false;
   ; //文件不是经过正规上传的;
  }
  if ($this->upfileerror != 0) {
   return false; //其他错误
  }
  if ($this->upfileerror == 0) {
   if (!file_exists($upfiletmpname)) {
    return false; //临时文件不存在
   } else {
    $filename = date("ymdhis", time() + 3600 * 8); //图片已当前时间命名
    $filename = $this->filepath . $filename . "." . $type;
    if (!move_uploaded_file($upfiletmpname, $filename)) {
     return false; //文件在移动中丢失
    } else {
     if ($this->india == true) {
      $this->goindia($filename, $type,true);
     } else {
      if ($this->reimagesize[0] == true) {
       $this->goreimagesize($filename, $type);
      } else {
       return true; //上传成功!
       unlink($upfiletmpname);
      }
     }
    }

   }
  }

 }
 //添加水印处理
 function goindia($filename, $filetype,$reimage=false) {
  if (!file_exists($filename)) {
   $this->reerror(7); //要添加水印的文件不存在
  } else {
   if ($filetype == "jpg") {
    $im = imagecreatefromjpeg($filename);
   } else
    if ($filetype == "gif") {
     $im = imagecreatefromgif($filename);
    } else
     if ($filetype == "png") {
      $im = imagecreatefrompng($filename);
     }
   if ($this->indiatext != "") { //如果水印文字不为空
    $textcolor = imagecolorallocate($im, $this->r, $this->g, $this->b); //设置文字颜色
    imagestring($im, $this->fontsize, $this->indiatextx, $this->indiatexty, $this->indiatext, $textcolor); //将文字写入图片
   }
   if ($this->indiaimage != "") {//如果水印图片不为空
    $indiaimagetype = getimagesize($this->indiaimage);
    $logow = $indiaimagetype[0]; //得到水印图片的宽
    $logoh = $indiaimagetype[1]; //得到水印图片的高
    switch ($indiaimagetype[2]) { //判断水印图片的格式
     case 1 :
      $indiaimagetype = "gif";
      $logo = imagecreatefromgif($this->indiaimage);
      break;
     case 2 :
      $indiaimagetype = "jpg";
      $logo = imagecreatefromjpeg($this->indiaimage);
      break;
     case 3 :
      $indiaimagetype = "png";
      $logo = imagecreatefrompng($this->indiaimage);
      break;
    }
    imagealphablending($im, true); //打开混色模式
    imagecopy($im, $logo, $this->indiaimagex, $this->indiaimagey, 0, 0, $logow, $logoh);
    imagedestroy($im);
    imagedestroy($logo);
   }
  }
  if ($this->indiapath == "") { //如果水印存放地址不为空
   if ($filetype == "jpg") {
    imagejpeg($im, $filename);
   } else
    if ($filetype == "gif") {
     imagegif($im, $filename);
    } else
     if ($filetype == "png") {
      imagepng($im, $filename);
     }
   if($reimage == true){
    $this->goreimagesize($filename,$filetype);
   }else{
    return true; //添加水印成功
   }
  } else {
   if (!file_exists($this->indiapath)) {
    mkdir($this->indiapath);
    return false; //请重新上传
   } else {
    $indianame = basename($filename);
    $indianame = $this->indiapath . $indianame;
    if ($filetype == "jpg") {
     imagejpeg($im, $indianame);
    } else
     if ($filetype == "gif") {
      imagegif($im, $indianame);
     } else
      if ($filetype == "png") {
       imagepng($im, $indianame);
      }
    if($reimage == true){
     $this->goreimagesize($indianame,$filetype);
     echo $indianame;
    }else{
     return true; //添加水印成功
    }
   }
  }
 }
 function goreimagesize($filename, $filetype) {
  if (!file_exists($filename)) {
   return false; //要生成缩略图的图片不存在
  } else {
   if ($filetype == 'jpg') {
    $reimage = imagecreatefromjpeg($filename);
   }
   elseif ($filetype == 'png') {
    $reimage = imagecreatefrompng($filename);
   } else
    if ($filetype == 'gif') {
     $reimage = imagecreatefromgif($filename);
    }
   if (isset ($reimage)) {
    $srcimagetype = getimagesize($filename);
    $srcimagetypew = $srcimagetype[0]; //得到原始图片宽度
    $srcimagetypeh = $srcimagetype[1]; //得到原始图片高度
    $reim = imagecreatetruecolor($this->reimagesize[1], $this->reimagesize[2]);
    imagecopyresized($reim, $reimage, 0, 0, 0, 0, $this->reimagesize[1], $this->reimagesize[2], $srcimagetypew, $srcimagetypeh);
    $reimagepath = $this->reimagesize[3];
    if ($reimagepath != "") { //如果存放水印地址不为空
     if (!file_exists($reimagepath)) {
      mkdir($reimagepath);
     } else {
      $reimagename = basename($filename);
      $reimagename = $reimagepath . "r_" . $reimagename;
      if ($filetype == "gif")
       imagegif($reim, $reimagename);
      else
       if ($filetype == "jpg")
        imagejpeg($reim, $reimagename);
       else
        if ($filetype == "png")
         imagepng($reim, $reimagename);
      return true;
     }
    } else {
     $filename = basename($filename);
     if($this->indiapath == ""){
      $filename = $this->filepath."r_" . $filename;
     }else{
      $filename = $this->indiapath."r_" . $filename;
     }
     if ($filetype == "gif")
      imagegif($reim, $filename);
     else
      if ($filetype == "jpg")
       imagejpeg($reim, $filename);
      else
       if ($filetype == "png")
        imagepng($reim, $filename);
     return true;
    }

   }
  }
 }

}
if ($_post["submit"]) {
 $file = $_files['uploadfile'];
 $upfile = new upfile();
 echo $upfile->uploadfile($file);
}
?>

  <form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="uploadfile"/><br/>
  <input type="submit" value="上传" name="submit"/>
  </form>

时间: 2024-10-29 02:14:06

php 图片上传代码(具有生成缩略图与增加水印功能)的相关文章

jsp图片上传代码

jsp图片上传代码 <%@ page contentType="text/html;charset=UTF-8" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*, java.sql.*,com.jspsmart.upload.*,java.util.*,cn.oof.database.*,cn.oof.house.

简单php 图片上传代码

简单php 图片上传代码 php 上传图片代 <?php $zpname=addslashes(isset($_POST['zpname'])?$_POST['zpname']:''); $zpurl=isset($_POST['zpurl'])?$_POST['zpurl']:''; $zpsay=addslashes(isset($_POST['zpsay'])?$_POST['zpsay']:''); $blueidea=isset($_POST['blueidea'])?$_POST['

ASP.NET 图片上传工具类 upload image简单好用功能齐全

原文:ASP.NET 图片上传工具类 upload image简单好用功能齐全 使用方法: UploadImage ui = new UploadImage(); /***可选参数***/ ui.SetWordWater = "哈哈";//文字水印 // ui.SetPicWater = Server.MapPath("2.png");//图片水印(图片和文字都赋值图片有效) ui.SetPositionWater = 4;//水印图片的位置 0居中.1左上角.2右

php 图片上传代码(支持水印,缩略图)

<?php教程 $uptypes=array('image/jpg', //上传文件类型列表 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png'); $max_file_size=5000000; //上传文件大小限制, 单位BYTE $destination_folder="upload/"; //上传文件路径 $watermark=1; //是否附加水印(1为加水印

php 上传文件并生成缩略图代码

if( isset($_FILES['upImg']) ) {  if( $userGroup[$loginArr['group']]['upload'] == 0 )  {   echo '{"error":"您所在的用户组无权上传图片!"}';  }  else  {   $savePath = "attachment/img/".date('Y/m/d/H');   mkDirs($savePath);   $fileType = strt

PHP图片上传代码_php实例

使用说明:1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;2. 将extension_dir =改为你的php_gd2.dll所在目录; 复制代码 代码如下: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php/*************************

PHP 图片上传代码_php技巧

(代码片断试验成功,成功上传!) 因为昨天想起来学习一下PHP代码的冲动,是来源于像模仿着做一个类似公司IMAGE LIBRARY的东西出来.所以,今天当最基本的功能实现后,对PHP有了个概念性的认识后,就很自然地想到了个重要的功能急待实现,那就是图片的上传. 于是,开始在网上搜罗,找到个别人博客里的由三个页面组成的代码片断,于是拷下来研究,结果始终调试不成.本以为是公司电脑入域问题在作怪,后来经过一番尝试后,打算暂时放一下.回家去试(因为家里的电脑是最纯净的环境配制). 到家后,将代码拷出来尝

如何实现将用户上传的文件生成缩略图!

上传|缩略图 具体给个例子就清楚啦..如下:System.Web.HttpPostedFile UpFile = UpMhtFile.PostedFile; System.IO.Stream StreamObject = UpFile.InputStream; System.IO.FileStream myStream = new System.IO.FileStream(UpFile.FileName,System.IO.FileMode.Open,System.IO.FileAccess.R

将用户上传的文件生成缩略图的方法

具体给个例子就清楚啦.. 如下:   System.Web.HttpPostedFile UpFile = UpMhtFile.PostedFile; System.IO.Stream StreamObject = UpFile.InputStream; System.IO.FileStream myStream = new System.IO.FileStream(UpFile.FileName,System.IO.FileMode.Open,System.IO.FileAccess.Read