php多个文件上传(给图片加水印实例)_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php多个文件上传(给图片加水印实例)_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2804字,纯文字阅读大概需要5分钟。
内容图文
![php多个文件上传(给图片加水印实例)_PHP教程](/upload/InfoBanner/zyjiaocheng/173/cb07306d0efa41c4998747c08d3a8860.jpg)
php教程 多个文件上传(给图片加水印实例)
php 多个文件上传(给图片加水印实例)
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;
}
?>
内容总结
以上是互联网集市为您收集整理的php多个文件上传(给图片加水印实例)_PHP教程全部内容,希望文章能够帮你解决php多个文件上传(给图片加水印实例)_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。