首页 >php教程 >php手册 >php上传图片---初级版

php上传图片---初级版

WBOY
WBOY原创
2016-06-06 19:50:381117浏览

没有样式,没有淘宝的那种放大截取大小的效果,只是实现了图片上传的功能。 图片超过100k,会出现内部错误服务器错误,需要手动更改配置文件里的MaxRequestLen属性。 下面粘上代码: 1 ? php 2 /* ********************************************************

没有样式,没有淘宝的那种放大截取大小的效果,只是实现了图片上传的功能。

图片超过100k,会出现内部错误服务器错误,需要手动更改配置文件里的MaxRequestLen属性。

下面粘上代码:

php上传图片---初级版php上传图片---初级版

<span>  1</span> <span>php
</span><span>  2</span> <span>/*</span><span>*****************************************************************************
</span><span>  3</span> 
<span>  4</span> <span>参数说明:
</span><span>  5</span> <span>$max_file_size  : 上传文件大小限制, 单位BYTE
</span><span>  6</span> <span>$destination_folder : 上传文件路径
</span><span>  7</span> <span>$watermark   : 是否附加水印(1为加水印,其他为不加水印);
</span><span>  8</span> 
<span>  9</span> <span>*****************************************************************************</span><span>*/</span>
<span> 10</span> 
<span> 11</span> <span>//</span><span>上传文件类型列表</span>
<span> 12</span> <span>$uptypes</span>=<span>array</span><span>(
</span><span> 13</span>     'image/jpg',
<span> 14</span>     'image/jpeg',
<span> 15</span>     'image/png',
<span> 16</span>     'image/pjpeg',
<span> 17</span>     'image/gif',
<span> 18</span>     'image/bmp',
<span> 19</span>     'image/x-png'
<span> 20</span> <span>);
</span><span> 21</span> 
<span> 22</span> <span>$max_file_size</span>=102400;     <span>//</span><span>上传文件大小限制, 单位BYTE</span>
<span> 23</span> <span>$destination_folder</span>="uploadimg/"; <span>//</span><span>上传文件路径</span>
<span> 24</span> <span>$watermark</span>=1;      <span>//</span><span>是否附加水印(1为加水印,其他为不加水印);</span>
<span> 25</span> <span>$watertype</span>=1;      <span>//</span><span>水印类型(1为文字,2为图片)</span>
<span> 26</span> <span>$waterposition</span>=1;     <span>//</span><span>水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);</span>
<span> 27</span> <span>$waterstring</span>="http://www.xplore.cn/";  <span>//</span><span>水印字符串</span>
<span> 28</span> <span>$waterimg</span>="xplore.gif";    <span>//</span><span>水印图片</span>
<span> 29</span> <span>$imgpreview</span>=1;      <span>//</span><span>是否生成预览图(1为生成,其他为不生成);</span>
<span> 30</span> <span>$imgpreviewsize</span>=1/2;    <span>//</span><span>缩略图比例</span>
<span> 31</span> ?>
<span> 32</span> 
<span> 33</span> 
<span> 34</span> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<span> 35</span> <title>php上传图片</title>
<span> 36</span> 
<span> 37</span> 
<span> 38</span> 
<span> 39</span> 
<span> 40</span> 
41

上传文件: 42 43

44 45

允许上传的文件类型为:=implode(', ',$uptypes)?>

46
47 48 php 49 if ($_SERVER['REQUEST_METHOD'] == 'POST') 50 { 51 $file = $_FILES["upfile"]; 52 if($max_file_size >= $file["size"] && in_array($file["type"], $uptypes) && file_exists($destination_folder) && is_uploaded_file($_FILES["upfile"]['tmp_name'])) 53 { 54 55 $filename=$file["tmp_name"];//图片的临时名称 56 $image_size = getimagesize($filename);//图片大小 57 $pinfo=pathinfo($file["name"]);//返回包含dirname,basename 和 extension的url 58 $ftype=$pinfo['extension'];//图片类型,后缀名 59 $destination = $destination_folder.time().".".$ftype;//目标图片的名称 60 if (file_exists($destination) && $overwrite != true) 61 { 62 echo "同名文件已经存在了"; 63 exit; 64 } 65 66 if(!move_uploaded_file ($filename, $destination)) 67 { 68 echo "移动文件出错"; 69 exit; 70 } 71 72 $pinfo=pathinfo($destination);//返回包含dirname,basename 和 extension的url 73 $fname=$pinfo['basename'];//目标图片的名称包含后缀名 74 echo " 已经成功上传
文件名: ".$destination_folder.$fname."
"; 75 echo " 宽度:".$image_size[0];// 76 echo " 长度:".$image_size[1];// 77 echo "
大小:".$file["size"]." bytes";//大小 78 79 if($watermark==1) 80 { 81 $iinfo=getimagesize($destination,$iinfo); 82 $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);//新建一个真彩色图像 83 $white=imagecolorallocate($nimage,255,255,255);//为一幅图像分配颜色,黑色 84 $black=imagecolorallocate($nimage,0,0,0);//为一幅图像分配颜色,白色 85 $red=imagecolorallocate($nimage,255,0,0);//为一幅图像分配颜色 86 imagefill($nimage,0,0,$white);//填充,0,0代表坐标 87 switch ($iinfo[2]) 88 { 89 case 1: 90 $simage =imagecreatefromgif($destination);//由文件或URL创建一个新gif图象 91 break; 92 case 2: 93 $simage =imagecreatefromjpeg($destination);//由文件或URL创建一个新jpeg图象 94 break; 95 case 3: 96 $simage =imagecreatefrompng($destination);//由文件或URL创建一个新png图象 97 break; 98 case 6: 99 $simage =imagecreatefromwbmp($destination);//由文件或URL创建一个新bmp图象 100 break; 101 default: 102 die("不支持的文件类型"); 103 exit; 104 } 105 106 imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 107 imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 108 109 switch($watertype) 110 { 111 case 1: //加水印字符串 112 imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);//col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处 113 break; 114 case 2: //加水印图片 115 $simage1 =imagecreatefromgif("xplore.gif");//由文件或URL创建一个新图象 116 imagecopy($nimage,$simage1,0,0,0,0,85,15);//拷贝图像的一部分 117 imagedestroy($simage1);//销毁一图像 118 break; 119 } 120 121 switch ($iinfo[2]) 122 { 123 //输出图象到浏览器或文件 124 case 1: 125 //imagegif($nimage, $destination); 126 imagejpeg($nimage, $destination); 127 break; 128 case 2: 129 imagejpeg($nimage, $destination); 130 break; 131 case 3: 132 imagepng($nimage, $destination); 133 break; 134 case 6: 135 imagewbmp($nimage, $destination); 136 //imagejpeg($nimage, $destination); 137 break; 138 } 139 140 //覆盖原上传文件 141 imagedestroy($nimage); 142 imagedestroy($simage); 143 } 144 145 if($imgpreview==1) 146 { 147 echo "
图片预览:
"; 148 echo "php上传图片---初级版$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 149 echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; 150 } 151 } 152 else 153 { 154 if (!is_uploaded_file($_FILES["upfile"]['tmp_name'])) 155 { 156 //是否存在文件 157 echo "图片不存在!"; 158 exit; 159 } 160 if($max_file_size $file["size"]) 161 { 162 //检查文件大小 163 echo "文件太大!"; 164 exit; 165 } 166 167 if(!in_array($file["type"], $uptypes)) 168 { 169 //检查文件类型 170 echo "文件类型不符!".$file["type"]; 171 exit; 172 } 173 174 if(!file_exists($destination_folder)) 175 { 176 mkdir($destination_folder);//尝试新建一个由 $destination_folder 指定的目录 177 } 178 } 179 } 180 ?> 181 182 View Code

 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn