function upload($uploadfile,$watermark=1,$watertype=1,$content){

foreach($uploadfile['name'] as $key=>$name) {  //多文件上传函数

uploadall($uploadfile,$key,$watermark,$watertype,$content);

}

}

function uploadall($uploadfile,$i,$watermark,$watertype,$content) {

$watermark=$watermark;         //是否附加水印(1为加水印,其他为不加水印);

$watertype=$watertype;         //水印类型(1为文字,2为图片)

$watercontent=$content;         //水印的内容

if(empty($uploadfile['name'][$i])) {

die("未选择文件上传");

}

if($uploadfile['error'][$i] == 2) {   //验证html判断结果

die("上传的文件太大了");

}

$allow_filemaxsize = 2048000;    // 2m

$filesize = $uploadfile['size'][$i];

if($filesize > $allow_filemaxsize) {

die("上传的文件太大了");

}

$allow_filetypes = array("jpeg", "gif", "png","jpg","pjpeg");//允许上传的文件统一资源类型 mimetype

$allow = false;        //默认都不允许

$mimetype = $uploadfile['type'][$i];  //上传文件的mime文件类型

foreach($allow_filetypes as $t) {

if(strpos($mimetype, $t) !== false) {

$allow = true;      //找到了符合上传条件的文件类型

break;

}

}

if($allow == false) {

die("上传的文件类型不被允许");

}

$result = is_uploaded_file($uploadfile['tmp_name'][$i]);   //判断是否为上传动作产生的

if(!$result) {

die("上传的文件有误");

}

$uploaddir = "img/";       //上传文件保存目录

if(!file_exists($uploaddir)) mkdir($uploaddir, 0777, true);//若上传保存目录不存在,则递归创建

/**重命名文件**/

$filetype = explode(".", $uploadfile['name'][$i]);

$filetype = array_pop($filetype);

$uploadfilename = time().".".$filetype;

$_session['filename'] = $uploadfilename;

//end

$result = move_uploaded_file($uploadfile['tmp_name'][$i], $uploaddir.$uploadfilename);

if($result) {

echo  "文件上传成功";

}else{

switch($uploadfile['error'][$i]) {

case 1:return "上传的文件超出了php.ini中设定的最大值";break;

case 2:return "上传的文件超出了html中设定的最大值";break;

case 3:return "文件只有部分被上传";break;

case 4;return "没有文件被上传";break;

default:die("文件上传失败");

}

}

if($watermark==1) {

$iinfo=getimagesize($uploaddir.$uploadfilename);  //获取图片的相关信息,得到数组

$nimage=imagecreatetruecolor($iinfo[0],$iinfo[1]);

$white=imagecolorallocate($nimage,255,255,255); //设置背景颜色为白色

$black=imagecolorallocate($nimage,0,0,0);  //设置背景颜色为黑色

$red=imagecolorallocate($nimage,255,0,0);  //设置背景颜色为红色

imagefill($nimage,0,0,$white);     //背景填充为白色

switch ($iinfo[2]) {

case 1:

$simage =imagecreatefromgif($uploaddir.$uploadfilename);

break;

case 2:

$simage =imagecreatefromjpeg($uploaddir.$uploadfilename);

break;

case 3:

$simage =imagecreatefrompng($uploaddir.$uploadfilename);

break;

case 6:

$simage =imagecreatefromwbmp($uploaddir.$uploadfilename);

break;

default:

die("不支持的文件类型");

exit;

}

imagecopy($nimage,$simage,0,0,0,0,$iinfo['0'],$iinfo['1']);

switch($watertype) {

case 1:             //加水印字符串

imagestring($nimage,5,$iinfo['0']/2-50,$iinfo['1']-30,$watercontent,$black);

break;

case 2:            //加水印图片

$simage1 =imagecreatefromgif($watercontent);

$size = getimagesize($watercontent);

imagecopy($nimage,$simage1,$iinfo['0']/2+50,$iinfo['1']-100,0,0,$size[0],$size[1]);

imagedestroy($simage1);

break;

}

switch ($iinfo[2]) {

case 1:

imagejpeg($nimage, $uploaddir.$uploadfilename); //将图像$nimage以$destination文件名创建一个jpeg的格式文件

break;

case 2:

imagejpeg($nimage, $uploaddir.$uploadfilename);

break;

case 3:

imagepng($nimage, $uploaddir.$uploadfilename);

break;

case 6:

imagewbmp($nimage, $uploaddir.$uploadfilename);

break;

}

imagedestroy($nimage);    //覆盖原上传文件

imagedestroy($simage);

}

}

if(@$_get['act'] == "insert") {    //未作参数校验

//该函数的四个参数分别是:上传控件的name值;是否加水印(1为加,其他数字为不佳);

//水印的类型(1为字符串,2为图片);水印的内容,字符串时写数据,图片时写图片的地址;

$picture = upload($_files['picture'],1,2,"img/watermark.gif");//上传文件,并返回上传后的文件路径名

}

?>

php 上传加水印,php 图片上传加水印(自动增加水印)相关推荐

  1. 怎么加水印在图片上?

    怎么加水印在图片上?随着时代的发展,大家对于作品版权的保护意识也越来越高,例如制作拍摄或者制作的视频.自己录制的歌曲.写的小说等等,都需要我们保护自己的版权不受侵犯.除此之外还有一个非常重要的文件需要 ...

  2. html 头像选择,html5点击上传头像选取本地图片上传代码

    特效描述:html5 点击上传头像 选取本地图片 上传代码.html5点击上传头像,图片上传代码 代码结构 1. HTML代码 上传头像 //获取上传按钮 var input1 = document. ...

  3. 直播平台软件开发,input限制上传数量,规定图片上传数量

    直播平台软件开发,input限制上传数量,规定图片上传数量 /*** [fileCountCheck 上传文件数量检测]* @param {[Object]} filesObj [文件对象|input ...

  4. moba上传文件到服务器,图片上传到远程服务器上的方法

    图片上传到远程服务器上的方法 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows ...

  5. PHP图片加水印,然后将加水印的图片上传到七牛云

    今天项目有这么一个需求,简单实现了一下,当然用起来是没有任何问题的,现在把实现代码分享给小伙伴们 public function uploadImgToQiniu($picture_id){$wate ...

  6. php 上传加水印,PHP 图片上传加水印实例

    function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$t ...

  7. php 缩略图增加水印,php 图片上传代码(具有生成缩略图与增加水印功能)

    class upfile { public $filepath = "www.111com.net/"; //上传文件存放文件夹 public $filesize = 100000 ...

  8. php 图片上传 水印,PHP - 图片上传并添加水印

    一个的面向过程的 PHP 图片上传并对其添加文字水印的功能. 还有很多待需完善的地方. index.php $conn=@mysql_connect("localhost",&qu ...

  9. php 文件预览 水印,PHP图片上传,预览图上传,水印设置

    //设置图片的存放目录 设置水印的存放地址如果愿意,可以给预览图.上传图片分设不同的存储地址 $img_path = $_SERVER['DOCUMENT_ROOT']."/data/img ...

最新文章

  1. python测试代码_python入门-测试代码
  2. 【PAT乙级】1076 Wifi密码 (15 分)
  3. 两本电子书 |Flink 最佳学习实践 | 从 0 到 1 学会 Apache Flink
  4. c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
  5. solr为什么比MySQL快_Solr原理?为什么要用Solr?Solr为什么比较快?
  6. Segmentree beats!---吉如一线段树学习笔记
  7. 《引爆点》学习笔记二
  8. App逆向|一个案例教你如何进行APP逆向
  9. 发那科sub_FANUC PMC功能指令之计数器 CTR SUB5-共享屋共享屋
  10. iOS调用手机振动和铃声
  11. 区块链需要c语言和linux嘛,区块链技术如何运作?使用什么开发语言?
  12. Postman批量提交
  13. 计算机考研815指什么,考研815化学包括什么
  14. [AHOI2014/JSOI2014] 骑士游戏
  15. php 感叹号有什么用,感叹号!代表什么意思?(标点符号的用法之感叹号)
  16. tomcat管理界面登录无法进入
  17. 杭州封杀嘀嘀、快的打车的加价功能
  18. 电子商务网站开发流程
  19. DbVisualizer Pro 9.1.1连DB2数据库中文显示乱码的解决【一篇就够】
  20. linux下运行讯飞语音云的测试程序

热门文章

  1. 双11怎么那么强!之二:浅析淘宝网络通信库tbnet的实现
  2. 政府门户网站建设解决方案
  3. Redis 命令--Redis哈希(hash)
  4. linux deepin 20.4升级至20.5教程:升级系统和升级内核两个步骤(手动升级deepin内核命令)
  5. Fedora换源:换成aliyun镜像源
  6. Linux 防火墙的基本认识
  7. k8s部署dubbo-admin 2.5.10
  8. k8s pod应用升级回滚(set image/rollout)和弹性伸缩(scale)示例
  9. k8s使用kubectl命令部署nginx并以nodeport方式暴露端口
  10. 【PyQT5编程】Pycharm结合QtDesigner使用示例:创建登录窗体