-
帝国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 代表加水印
通过以上步骤,您可以轻松实现图片的自动上传、压缩和水印功能。这种方法不仅提高了开发效率,还确保了图片处理的一致性和规范性。
希望本文能对您的项目有所帮助!如果您有任何疑问或需要进一步的帮助,请随时联系我。
相关文章
-
在留言板和后台留言审核面板中显示留言者的IP地址,是增强网站安全性和管理效率的重要功能。通过记录和展示IP地址,管理员可以更方便地追踪留言来源,确保内容的真实性和合法性。本文将详细介绍如何实现这一功能,并优化搜索引擎排名(SEO)。 首先,我们需要了解如何在代码中正确插入IP地址的显示逻辑。以下是...2025-03-29
-
在网站开发中,保护用户隐私是一个重要的考虑因素。当您在分类信息内容页添加了发布人的IP显示功能时,可能会面临如何隐藏IP地址的部分数字以保护用户隐私的问题。本文将介绍一种方法,让您能够像处理评论中的IP地址一样,将IP地址的最后一位数字替换为“*”。 为了实现这一功能,您可以使用PHP代码对IP地...2025-03-29
-
创建符合SEO标准的Google Sitemap对于提高网站在搜索引擎中的可见性至关重要。以下是一篇经过改写的文章,详细介绍了如何利用栏目分别创建不同的Sitemap,并确保其符合Google的要求。 技术整理:24mp3技术支持:wm_chief, hicode 制作Google Sitema...2025-03-29
-
在构建动态网站时,使用循环结构来展示数据是一种常见的做法。例如,在EmpireCMS中,我们可以利用[e:loop]标签来实现这一功能。下面是一篇关于如何使用[e:loop]标签生成友情链接列表的文章,旨在优化搜索引擎排名(SEO),同时确保代码的可读性和功能性。 在EmpireCMS中,[e:l...2025-03-29