Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314327
  • 博文数量: 111
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 11:00
个人简介

小伙向前冲呀,小伙向前冲呀。

文章分类

全部博文(111)

文章存档

2014年(43)

2013年(68)

我的朋友

分类: PHP

2013-11-05 07:02:30

有好多种方法,今天给大家提供一个简单的方法。

使用说明:
1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
2. 将extension_dir =改为你的php_gd2.dll所在目录;

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <?php
  3. /***
  4. 参数说明:
  5. $max_file_size : 上传文件大小限制, 单位BYTE
  6. $destination_folder : 上传文件路径
  7. $watermark : 是否附加水印(1为加水印,其他为不加水印);
  8. @site
  9. *******/
  10. //上传文件类型列表
  11. $uptypes=array(
  12.     'image/jpg',
  13.     'image/jpeg',
  14.     'image/png',
  15.     'image/pjpeg',
  16.     'image/gif',
  17.     'image/bmp',
  18.     'image/x-png'
  19. );


  20. $max_file_size=2000000; //上传文件大小限制, 单位BYTE
  21. $destination_folder="uploadimg/"; //上传文件路径
  22. $watermark=1; //是否附加水印(1为加水印,其他为不加水印);
  23. $watertype=1; //水印类型(1为文字,2为图片)
  24. $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
  25. $waterstring=""; //水印字符串
  26. $waterimg="xplore.gif"; //水印图片
  27. $imgpreview=1; //是否生成预览图(1为生成,其他为不生成);
  28. $imgpreviewsize=1/2; //缩略图比例
  29. ?>
  30. <html>
  31. <head>
  32. <title>ZwelL图片上传程序 - www.jbxue.com </title>
  33. <style type="text/css">

  34. </style>
  35. </head>


  36. <body>
  37. <form enctype="multipart/form-data" method="post" name="upform">
  38.   上传文件:
  39.   <input name="upfile" type="file">
  40.   <input type="submit" value="上传"><br>
  41.   允许上传的文件类型为:<?=implode(', ',$uptypes)?>
  42. </form>


  43. <?php
  44. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  45. {
  46.     if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
  47.     //是否存在文件
  48.     {
  49.          echo "图片不存在!";
  50.          exit;
  51.     }


  52.     $file = $_FILES["upfile"];
  53.     if($max_file_size < $file["size"])
  54.     //检查文件大小
  55.     {
  56.         echo "文件太大!";
  57.         exit;
  58.     }


  59.     if(!in_array($file["type"], $uptypes))
  60.     //检查文件类型
  61.     {
  62.         echo "文件类型不符!".$file["type"];
  63.         exit;
  64.     }


  65.     if(!file_exists($destination_folder))
  66.     {
  67.         mkdir($destination_folder);
  68.     }


  69.     $filename=$file["tmp_name"];
  70.     $image_size = getimagesize($filename);
  71.     $pinfo=pathinfo($file["name"]);
  72.     $ftype=$pinfo['extension'];
  73.     $destination = $destination_folder.time().".".$ftype;
  74.     if (file_exists($destination) && $overwrite != true)
  75.     {
  76.         echo "同名文件已经存在了";
  77.         exit;
  78.     }


  79.     if(!move_uploaded_file ($filename, $destination))
  80.     {
  81.         echo "移动文件出错";
  82.         exit;
  83.     }


  84.     $pinfo=pathinfo($destination);
  85.     $fname=$pinfo[basename];
  86.     echo " 已经成功上传
    文件名: "
    .$destination_folder.$fname."
    ";
  87.     echo " 宽度:".$image_size[0];
  88.     echo " 长度:".$image_size[1];
  89.     echo "
    大小:"
    .$file["size"]." bytes";


  90.     if($watermark==1)
  91.     {
  92.         $iinfo=getimagesize($destination,$iinfo);
  93.         $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
  94.         $white=imagecolorallocate($nimage,255,255,255);
  95.         $black=imagecolorallocate($nimage,0,0,0);
  96.         $red=imagecolorallocate($nimage,255,0,0);
  97.         imagefill($nimage,0,0,$white);
  98.         switch ($iinfo[2])
  99.         {
  100.             case 1:
  101.             $simage =imagecreatefromgif($destination);
  102.             break;
  103.             case 2:
  104.             $simage =imagecreatefromjpeg($destination);
  105.             break;
  106.             case 3:
  107.             $simage =imagecreatefrompng($destination);
  108.             break;
  109.             case 6:
  110.             $simage =imagecreatefromwbmp($destination);
  111.             break;
  112.             default:
  113.             die("不支持的文件类型");
  114.             exit;
  115.         }


  116.         imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
  117.         imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);


  118.         switch($watertype)
  119.         {
  120.             case 1: //加水印字符串
  121.             imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
  122.             break;
  123.             case 2: //加水印图片
  124.             $simage1 =imagecreatefromgif("xplore.gif");
  125.             imagecopy($nimage,$simage1,0,0,0,0,85,15);
  126.             imagedestroy($simage1);
  127.             break;
  128.         }


  129.         switch ($iinfo[2])
  130.         {
  131.             case 1:
  132.             //imagegif($nimage, $destination);
  133.             imagejpeg($nimage, $destination);
  134.             break;
  135.             case 2:
  136.             imagejpeg($nimage, $destination);
  137.             break;
  138.             case 3:
  139.             imagepng($nimage, $destination);
  140.             break;
  141.             case 6:
  142.             imagewbmp($nimage, $destination);
  143.             //imagejpeg($nimage, $destination);
  144.             break;
  145.         }


  146.         //覆盖原上传文件
  147.         imagedestroy($nimage);
  148.         imagedestroy($simage);
  149.     }


  150.     if($imgpreview==1)
  151.     {
  152.     echo "
    图片预览:
    "
    ;
  153.     echo ".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);
  154.     echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">";
  155.     }
  156. }
  157. ?>
  158. </body>
  159. </html>
阅读(827) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~