PHP实例教程:实现网站上传图片自动加水印_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP实例教程:实现网站上传图片自动加水印

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:图片自动上传网站
黑客防线网安网讯:  用PHP给上传图片加水印的程序是通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判断水印类型:一是...
  用PHP给上传图片加水印的程序是通过判断文件类型建立图形然后把其复制到原建立的图形上填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个图形对象在上面如果你对PHP的GD库比较熟悉,看懂这篇文章一点都不难了!
  
  以下是引用片段:
  
  以下为引用的内容:
  
  /*****************************************************
  
  参数说明:
  
  $max_file_size:上传文件大小限制,单位BYTE
  
  $destination_folder:上传文件路径
  
  $watermark:是否附加水印(1为加水印,其他为不加水印);
  
  使用说明:
  
  1.将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
  
  2.将extension_dir=改为你的php_gd2.dll所在目录;
  
  3.http://www.knowsky.com/php.asp;
  
  ****************************************************/
  
  //上传文件类型列表
  
  $uptypes=array(
  
  'image/jpg',
  
  'image/jpeg',
  
  'image/png',
  
  'image/pjpeg',
  
  'image/gif',
  
  'image/bmp',
  
  'image/x-png'
  
  );
  
  $max_file_size=2000000;//上传文件大小限制,单位BYTE
  
  $destination_folder="uploadimg/";//上传文件路径
  
  $watermark=1;//是否附加水印(1为加水印,其他为不加水印);
  
  $watertype=1;//水印类型(1为文字,2为图片)
  
  $waterposition=1;//水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
  
  $waterstring="http://www.xplore.cn/";//水印字符串
  
  $waterimg="xplore.gif";//水印图片
  
  $imgpreview=1;//是否生成预览图(1为生成,其他为不生成);
  
  $imgpreviewsize=1/2;//缩略图比例
  
  ?>
  
  <html>
  
  <head>
  
  <title>ZwelL图片上传程序</title>
  
  <styletype="text/css">
  
  <!--
  
  body
  
  {
  
  font-size:9pt;
  
  }
  
  input
  
  {
  
  background-color:#66CCFF;
  
  border:1pxinset#CCCCCC;
  
  }
  
  -->
  
  </style>
  
  </head>
  
  <body>
  
  <formenctype="multipart/form-data"method="post"name="upform">
  
  上传文件:
  
  <inputname="upfile"type="file">
  
  <inputtype="submit"value="上传"><br>
  
  允许上传的文件类型为:<?=implode(',',$uptypes)?>
  
  </form>
  
  <?php
  
  if($_SERVER['REQUEST_METHOD']=='POST')
  
  {
  
  if(!is_uploaded_file($_FILES["upfile"][tmp_name]))
  
  //是否存在文件
  
  {
  
  echo"图片不存在!";
  
  exit;
  
  }
  
  $file=$_FILES["upfile"];
  
  if($max_file_size<$file["size"])
  
  //检查文件大小
  
  {
  
  echo"文件太大!";
  
  exit;
  
  }
  
  if(!in_array($file["type"],$uptypes))
  
  //检查文件类型
  
  {
  
  echo"文件类型不符!".$file["type"];
  
  exit;
  
  }
  
  if(!file_exists($destination_folder))
  
  {
  
  mkdir($destination_folder);
  
  }
  
  $filename=$file["tmp_name"];
  
  $image_size=getimagesize($filename);
  
  $pinfo=pathinfo($file["name"]);
  
  $ftype=$pinfo['extension'];
  
  $destination=$destination_folder.time().".".$ftype;
  
  if(file_exists($destination)&&$overwrite!=true)
  
  {
  
  echo"同名文件已经存在了";
  
  exit;
  
  }
  
  if(!move_uploaded_file($filename,$destination))
  
  {
  
  echo"移动文件出错";
  
  exit;
  
  }
  
  $pinfo=pathinfo($destination);
  
  $fname=$pinfo[basename];
  
  echo"<fontcolor=red>已经成功上传</font><br>文件名:
  
  <fontcolor=blue>".$destination_folder.$fname."</font><br>";
  
  echo"宽度:".$image_size[0];
  
  echo"长度:".$image_size[1];
  
  echo"<br>大小:".$file["size"]."bytes";
  
  if($watermark==1)
  
  {
  
  $iinfo=getimagesize($destination,$iinfo);
  
  $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
  
  $white=imagecolorallocate($nimage,255,255,255);
  
  $black=imagecolorallocate($nimage,0,0,0);
  
  $red=imagecolorallocate($nimage,255,0,0);
  
  imagefill($nimage,0,0,$white);
  
  switch($iinfo[2])
  
  {
  
  case1:
  
  $simage=imagecreatefromgif($destination);
  
  break;
  
  case2:
  
  $simage=imagecreatefromjpeg($destination);
  
  break;
  
  case3:
  
  $simage=imagecreatefrompng($destination);
  
  break;
  
  case6:
  
  $simage=imagecreatefromwbmp($destination);
  
  break;
  
  default:
  
  die("不支持的文件类型");
  
  exit;
  
  }
  
  imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
  
  imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);
  
  switch($watertype)
  
  {
  
  case1://加水印字符串
  
  imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
  
  break;
  
  case2://加水印图片
  
  $simage1=imagecreatefromgif("xplore.gif");
  
  imagecopy($nimage,$simage1,0,0,0,0,85,15);
  
  imagedestroy($simage1);
  
  break;
  
  }
  
  switch($iinfo[2])
  
  {
  
  case1:
  
  //imagegif($nimage,$destination);
  
  imagejpeg($nimage,$destination);
  
  break;
  
  case2:
  
  imagejpeg($nimage,$destination);
  
  break;
  
  case3:
  
  imagepng($nimage,$destination);
  
  break;
  
  case6:
  
  imagewbmp($nimage,$destination);
  
  //imagejpeg($nimage,$destination);
  
  break;
  
  }
  
  //覆盖原上传文件
  
  imagedestroy($nimage);
  
  imagedestroy($simage);
  
  }
  
  if($imgpreview==1)
  
  {
  
  echo"<br>图片预览:<br>";
  
  echo"<ccid_filevalues=""width=".($image_size[0]*$imgpreviewsize)."
  
  height=".($image_size[1]*$imgpreviewsize);"
  
  echo"alt="图片预览: 文件名:".$destination." 上传时间:"/>";
  
  }
  
  }
  
  ?>
  
  </body>
  
  </html>
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17527-1.html
网站维护教程更新时间:2012-09-21 05:20:40  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer