标签:
网上找的一个很好的php上传图片源代码,感谢贡献者,给需要的人,勉励自己多学习。
1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2 <?php 3 /****************************************************************************** 4 5 参数说明: 6 $max_file_size : 上传文件大小限制, 单位BYTE 7 $destination_folder : 上传文件路径 8 $watermark : 是否附加水印(1为加水印,其他为不加水印); 9 使用说明: 10 1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库; 11 2. 将extension_dir =改为你的php_gd2.dll所在目录; 12 ******************************************************************************/ 13 14 //上传文件类型列表 15 $uptypes=array( 16 ‘image/jpg‘, 17 ‘image/jpeg‘, 18 ‘image/png‘, 19 ‘image/pjpeg‘, 20 ‘image/gif‘, 21 ‘image/bmp‘, 22 ‘image/x-png‘ 23 ); 24 25 $max_file_size=2000000; //上传文件大小限制, 单位BYTE 26 $destination_folder="../UpFiles/"; //上传文件路径 27 $watermark=2; //是否附加水印(1为加水印,其他为不加水印); 28 $watertype=1; //水印类型(1为文字,2为图片) 29 $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); 30 $waterstring="xinqing"; //水印字符串 31 $waterimg="xplore.gif"; //水印图片 32 $imgpreview=1; //是否生成预览图(1为生成,其他为不生成); 33 $imgpreviewsize=1/2; //缩略图比例 34 ?> 35 <html> 36 <head> 37 <title>完整上传程序</title> 38 <style type="text/css"> 39 <!-- 40 body 41 { 42 font-size: 9pt; 43 } 44 input 45 { 46 background-color: #66CCFF; 47 border: 1px inset #CCCCCC; 48 } 49 --> 50 </style> 51 </head> 52 53 <body> 54 <form enctype="multipart/form-data" method="post" name="upform"> 55 上传文件: 56 <input name="upfile" type="file"> 57 <input type="submit" value="上传"><br> 58 允许上传的文件类型为:<?=implode(‘, ‘,$uptypes)?> 59 </form> 60 61 <?php 62 if ($_SERVER[‘REQUEST_METHOD‘] == ‘POST‘) 63 { 64 if (!is_uploaded_file($_FILES["upfile"][‘tmp_name‘])) 65 //是否存在文件 66 { 67 echo "图片不存在!"; 68 exit; 69 } 70 71 $file = $_FILES["upfile"]; 72 $file_Name=$file["name"]; 73 if($max_file_size < $file["size"]) 74 //检查文件大小 75 { 76 echo "文件太大!"; 77 exit; 78 } 79 80 if(!in_array($file["type"], $uptypes)) 81 //检查文件类型 82 { 83 echo "文件类型不符!".$file["type"]; 84 exit; 85 } 86 87 if(!file_exists($destination_folder)) 88 { 89 mkdir($destination_folder); 90 } 91 92 $filename=$file["tmp_name"]; 93 $image_size = getimagesize($filename); 94 $pinfo=pathinfo($file["name"]); 95 $ftype=$pinfo[‘extension‘]; 96 $destination = $destination_folder.time().".".$ftype; 97 if (file_exists($destination) && $overwrite != true) 98 { 99 echo "同名文件已经存在了"; 100 exit; 101 } 102 103 if(!move_uploaded_file ($filename, $destination)) 104 { 105 echo "移动文件出错"; 106 exit; 107 } 108 109 $pinfo=pathinfo($destination); 110 $fname=$pinfo[‘basename‘]; 111 echo " <font color=red>已经成功上传</font><br>文件名: <font color=blue>".$destination_folder.$fname."</font><br>"; 112 echo " 宽度:".$image_size[0]; 113 echo " 长度:".$image_size[1]; 114 echo "<br> 大小:".$file["size"]." bytes"; 115 116 if($watermark==1) 117 { 118 $iinfo=getimagesize($destination,$iinfo); 119 $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); 120 $white=imagecolorallocate($nimage,255,255,255); 121 $black=imagecolorallocate($nimage,0,0,0); 122 $red=imagecolorallocate($nimage,255,0,0); 123 imagefill($nimage,0,0,$white); 124 switch ($iinfo[2]) 125 { 126 case 1: 127 $simage =imagecreatefromgif($destination); 128 break; 129 case 2: 130 $simage =imagecreatefromjpeg($destination); 131 break; 132 case 3: 133 $simage =imagecreatefrompng($destination); 134 break; 135 case 6: 136 $simage =imagecreatefromwbmp($destination); 137 break; 138 default: 139 die("不支持的文件类型"); 140 exit; 141 } 142 143 imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 144 imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 145 146 switch($watertype) 147 { 148 case 1: //加水印字符串 149 imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); 150 break; 151 case 2: //加水印图片 152 $simage1 =imagecreatefromgif("xplore.gif"); 153 imagecopy($nimage,$simage1,0,0,0,0,85,15); 154 imagedestroy($simage1); 155 break; 156 } 157 158 switch ($iinfo[2]) 159 { 160 case 1: 161 //imagegif($nimage, $destination); 162 imagejpeg($nimage, $destination); 163 break; 164 case 2: 165 imagejpeg($nimage, $destination); 166 break; 167 case 3: 168 imagepng($nimage, $destination); 169 break; 170 case 6: 171 imagewbmp($nimage, $destination); 172 //imagejpeg($nimage, $destination); 173 break; 174 } 175 176 //覆盖原上传文件 177 imagedestroy($nimage); 178 imagedestroy($simage); 179 } 180 181 if($imgpreview==1) 182 { 183 echo "<br>图片预览:<br>"; 184 echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 185 echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; 186 } 187 } 188 ?> 189 </body> 190 </html>
标签:
原文地址:http://www.cnblogs.com/lixinyuan1213/p/4392390.html