最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php 多个文件上传(给图片加水印实例)
时间:2022-06-24 18:32:25 编辑:袖梨 来源:一聚教程网
代码如下 | 复制代码 |
if($_post['sub']=="www") { $waterimg="water.png"; $ftype=array('image/jpg','image/jpeg','imgage/png','image/pjpeg','image/gif');//允许上传的文件类型 $files=$_files['files']; $fnum=count($files['name']); //取得上传文件个数 for($i=0;$i<$fnum;$i++) { if($files['name'][$i]!=''&&is_uploaded_file($files['tmp_name'][$i])) { if(in_array($files['type'][$i],$ftype))//判断文件是否是允许的类型 { $fname[$i]='upfile/'.rand(0,10000).time().substr($files['name'] [$i],strrpos($files['name'][$i],'.'));//自动命名 move_uploaded_file($files['tmp_name'][$i],$fname[$i]); echo ' 文件上传成功!'; } else { echo ' 不允许的文件类型!'; exit; } } else { echo ' 该文件不存在!'; exit; } watermark($fname[$i],$waterimg); } $string=implode('|',$fname); echo $string; } ?> 再上传一张 /** * 为图片加水印 * @param string $desimg 目标图片 参数格式为 ./images/pic.jpg * @param string $waterimg 水印图片 参数格式同上,水印图片为 png格式,背景透明 * @param int positon 水印地位 1:顶部居左 2:顶部居右 3:居中 4 :底部居左 5:底部居右 * @param bool $saveas 能否另存为,默许值false,默示笼盖原图 * @param int $alpha 水印图片的不通明度 * @return string $savepath 新图片的途径 * **/ function watermark($desimg,$waterimg,$positon=1,$saveas=false,$alpha=30) { //获取目图片的根基信息 $temp=pathinfo($desimg); $name=$temp["basename"];//文件名 $path=$temp["dirname"];//文件地点的文件夹 $extension=$temp["extension"];//文件扩展名 if($saveas) { //需要另存为 $name=rtrim($name,".$extension")."_2.";//从头命名 $savepath=$path."/".$name.$extension; } else { //不需要另存为则笼盖原图 $savepath=$path."/".$name; } $info=getimageinfo($desimg);//获取目标图片的信息 $info2=getimageinfo($waterimg);//获取水印图片的信息 $desimg=create($desimg);//从原图创立 $waterimg=create($waterimg);//从水印图片创立 //地位1:顶部居左 if($positon==1) { $x=0; $y=0; } //地位2:顶部居右 if($positon==2) { $x=$info[0]-$info2[0]; $y=0; } //地位3:居中 if($positon==3) { $x=($info[0]-$info2[0])/2; $y=($info[1]-$info2[1])/2; } //地位4:底部居左 if($positon==4) { $x=0; $y=$info[1]-$info2[1]; } //地位5:底部居右 if($positon==5) { $x=$info[0]-$info2[0]; $y=$info[1]-$info2[1]; } imagecopymerge($desimg,$waterimg,$x,$y,0,0,$info2[0],$info2[1],$alpha); imagejpeg($desimg,$savepath); imagedestroy($desimg); imagedestroy($waterimg); return $savepath; } /** * 获取图片的信息,width,height,image/type * @param string $src 图片途径 * @return 数组 * **/ function getimageinfo($src) { return getimagesize($src); } /** * 创立图片,前往本钱范例 * @param string $src 图片途径 * @return resource $im 前往本钱范例 * **/ function create($src) { $info=getimageinfo($src); switch ($info[2]) { case 1: $im=imagecreatefromgif($src); break; case 2: $im=imagecreatefromjpeg($src); break; case 3: $im=imagecreatefrompng($src); break; } return $im; } ?> |
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22