网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>CMS教程>>帝国cms教程

帝国CMS前台投稿标题图片字段上传自动添加水印的方法

时间:2025-03-28 22:52:22    来源:    人气:1

在网站开发过程中,对图片进行自动处理是一项常见的需求。本文将详细介绍如何通过自定义函数实现图片的自动上传、压缩和水印功能。以下是具体的操作步骤以及代码实现。

首先,在e/class/userfun.php文件中添加一个自定义函数user_TranImgAuto,用于处理图片上传、缩放及水印操作。

function user_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){
        global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$tranpicturetype,$musername;
        $filetf=$f.'file';//变量名
        if(!$_FILES[$filetf]['name']){
                return '';
        }
        $classid=(int)$_POST@['classid'];//栏目ID
        $id=(int)$_POST@['id'];//信息ID
        $filepass=(int)$_POST@['filepass'];
        $filetype=GetFiletype($_FILES[$filetf]['name']);//文件类型
        $pr=$empire->fetch1("select qaddtran,qaddtransize,qaddtranimgtype from {$dbtbpre}enewspublic limit 1");
        if(!$pr['qaddtran']){
                printerror("CloseQTranPic","",1);//系统关闭上传图片功能
        }
        if(!strstr($pr['qaddtranimgtype'],"|".$filetype."|"]){
                printerror("NotQTranFiletype","",1);//您上传的文件扩展名有误
        }
        if($_FILES[$filetf]['size']>$pr['qaddtransize']*1024){
                printerror("TooBigQTranFile","",1);//您上传的文件大小超过系统限制
        }
        if(!strstr($tranpicturetype,','.$filetype.',')){
                printerror("NotQTranFiletype","",1);//您上传的文件扩展名有误
        }
        $tfr=DoTranFile($_FILES[$filetf]['tmp_name'],$_FILES[$filetf]['name'],$_FILES[$filetf]['type'],$_FILES[$filetf]['size'],$classid);
        if($tfr['tran']){
                $csr=explode(',',$cs);
                $maxwidth=$csr[0];
                $maxheight=$csr[1];
                $datu=$csr[2];//是否保留原图判断
                $suiyi=$csr[3];//是否加水印判断
                include_once(ECMS_PATH.'e/class/gd.php');
                $yname=$tfr['yname'];//大图完整地址
                if($suiyi=="yes" and $datu=="yes"){
                        imageWaterMark($tfr[yname],5,"../data/mark/maskdef.gif","",5,"#FF0000","../data/mark/cour.ttf",100,100);//执行加水印
                }
                $name=$tfr['name'];//缩图完整地址
                $filer=ResizeImage($yname,$name,$maxwidth,$maxheight,$public_r['spickill']);   
                if($datu=="no"){
                        DelFiletext($yname);//删除大图
                }
                if($filer['file']){
                        $type=1;
                        $filetime=date("Y-m-d H:i:s");
                        $filesize=@filesize($filer['file']);
                        $filename=GetFilename(str_replace(ECMS_PATH,'',$filer['file']));
                        $adduser='[Member]'.$musername;
                        $infoid=$isadd==1?0:$id;
                        if($datu=="yes"){
                                $empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,fpath) values('$tfr[filename]','$filesize','$adduser','$tfr[filepath]','$filetime','$classid','".addslashes(RepPostStr($_POST@[title]))."','$type','$infoid','$filepass','$public_r[fpath]');");
                        }
                        $value=$tfr['url'];//返回原图地址
                }else{
                        $value='';
                }
        }else{
                $value='';
        }
        return $value;
}

接下来,在标题图片字段(如titlepic)中添加处理函数调用。

具体字段处理函数添加说明如下:
user_TranImgAuto##160,120,yes,yes

参数解释:
160 宽度
120 高度
no 代表删除大图保留缩图,同时下面第4个参数无效;yes 代表保留大图和小图
no 代表不加水印;yes 代表加水印

通过以上步骤,您可以轻松实现图片的自动上传、压缩和水印功能。这种方法不仅提高了开发效率,还确保了图片处理的一致性和规范性。

希望本文能对您的项目有所帮助!如果您有任何疑问或需要进一步的帮助,请随时联系我。

相关文章

  • 帝国CMS留言板显示IP的方法

    帝国CMS留言板显示IP的方法

    在留言板和后台留言审核面板中显示留言者的IP地址,是增强网站安全性和管理效率的重要功能。通过记录和展示IP地址,管理员可以更方便地追踪留言来源,确保内容的真实性和合法性。本文将详细介绍如何实现这一功能,并优化搜索引擎排名(SEO)。 首先,我们需要了解如何在代码中正确插入IP地址的显示逻辑。以下是...
    2025-03-29
  • 帝国显示IP问题的解决方案

    帝国显示IP问题的解决方案

    在网站开发中,保护用户隐私是一个重要的考虑因素。当您在分类信息内容页添加了发布人的IP显示功能时,可能会面临如何隐藏IP地址的部分数字以保护用户隐私的问题。本文将介绍一种方法,让您能够像处理评论中的IP地址一样,将IP地址的最后一位数字替换为“*”。 为了实现这一功能,您可以使用PHP代码对IP地...
    2025-03-29
  • 帝国系统生成完整GOOGLE SITEMAP的方法

    帝国系统生成完整GOOGLE SITEMAP的方法

    创建符合SEO标准的Google Sitemap对于提高网站在搜索引擎中的可见性至关重要。以下是一篇经过改写的文章,详细介绍了如何利用栏目分别创建不同的Sitemap,并确保其符合Google的要求。 技术整理:24mp3技术支持:wm_chief, hicode 制作Google Sitema...
    2025-03-29
  • 帝国CMS教程:使用灵动标签制作友情连接

    帝国CMS教程:使用灵动标签制作友情连接

    在构建动态网站时,使用循环结构来展示数据是一种常见的做法。例如,在EmpireCMS中,我们可以利用[e:loop]标签来实现这一功能。下面是一篇关于如何使用[e:loop]标签生成友情链接列表的文章,旨在优化搜索引擎排名(SEO),同时确保代码的可读性和功能性。 在EmpireCMS中,[e:l...
    2025-03-29

公众号