<?
function WaterMark($target){
$watermark_file = './images/common/watermark.gif';
$attachinfo = getimagesize($target);
$watermark_logo = imageCreateFromGIF($watermark_file);
$logo_w = imageSX($watermark_logo);
$logo_h = imageSY($watermark_logo);
$img_w = $attachinfo[0];
$img_h = $attachinfo[1];
$wmwidth = $img_w - $logo_w;
$wmheight = $img_h - $logo_h;
if($attachinfo['mime'] == 'image/gif') {
return true;
}else{
if(is_readable($watermark_file) && $wmwidth > 100 && $wmheight > 100) {
switch ($attachinfo['mime']) {
case 'image/jpeg':
$dst_photo = imageCreateFromJPEG($target);
break;
case 'image/png':
$dst_photo = imageCreateFromPNG($target);
break;
default:
return true;
}
$x = $img_w - $logo_w-5;//水印位置
$y = $img_h - $logo_h-5;
imageAlphaBlending($watermark_logo, true);
imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, 80);//其中值50为水印的透明度
switch($attachinfo['mime']) {
case 'image/jpeg':
imageJPEG($dst_photo, $target);
break;
case 'image/png':
imagePNG($dst_photo, $target);
break;
}
return true;
}
}
}
function Copyimg($nurl,$tid,$pid,$upflag){
global $db, $tablepre,$attachsave;
$attachdir='./attachments';
//echo $nurl;
$watermark=1;//是否加水印
$host=array(
1=>'',
2=>'',
3=>''
);
//以上主机下的图片不copy
$upflag=false;
if(!$pid||!$tid)return $nurl;
//$imghost='http://www.In-Sunday.org/';
$ext=strtolower(trim(substr(strrchr($nurl, '.'), 1)));
if(!in_array($ext,array('jpg','gif','jpeg','bmp','png')))return $nurl;
$flag=true;
switch($attachsave) {
case 1: $attach_subdir = 'forumid_'.$GLOBALS['fid']; break;
case 2: $attach_subdir = 'ext_'.$ext; break;
case 3: $attach_subdir = 'month_'.date('ym'); break;
case 4: $attach_subdir = 'day_'.date('ymd'); break;
default:$attach_subdir =Gmdate("y-m",time()+3600*8);break;
}
//$attach_dir = $attachdir.'/'.$attach_subdir;
foreach($host as $key =>$value){
if(strstr ($nurl, $value))$flag=false;
}
if($flag){
@CK_mkdir($attachdir.'/'.$attach_subdir);
$filename= $attach_subdir.'/'.md5(uniqid(microtime(), 1)).'.'.$ext;
//echo $filename;
//return $nurl;
if(@doWriteToimg($attachdir.'/'.$filename,$nurl)){
$upflag=true;
$attachinfo= @getimagesize($attachdir.'/'.$filename);
$dateline=time();
$realname='主题图片'.'.'.$ext;
$filesize=filesize($attachdir.'/'.$filename);
$db->query("INSERT INTO {$tablepre}attachments (tid, pid, dateline, readperm, filename, description, filetype, filesize, attachment, downloads, isimage)
VALUES ('$tid', '$pid', '$dateline', '0', '$realname', '', '$attachinfo[mime]', '$filesize', '$filename', '0', '1')");
$aid = $db->insert_id();
if(in_array($ext,array('jpg','jpeg','png'))&&$watermark)@WaterMark($attachdir.'/'.$filename);
return $aid;
}
return $nurl;
}else{
return $nurl;
}
}
function doWriteToimg ($fileName,$imgurl,$method="w") {
//echo $nurl;
@chmod($fileName,0777);
if (file_exists($fileName)) {
return true;
}
$data=ReadImg($imgurl);
if(!$data)return false;
if(!$f=@fopen($fileName,$method))return false;
@flock($f,LOCK_EX);
$fileData=@fwrite($f,$data);
@fclose($f);
return $fileData;
}
function ReadImg($url){
//echo $url;
if(!$str=file_get_contents($url)){
$temp= parse_url($url);
$host=$temp[host];
$port=$temp[port]?$temp[port]:80;
$referer=$host;
$fp = fsockopen($host,$port, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET ".$url." HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: $referer\r\n";
$out .= "Connection: Close\r\n\r\n";
fputs($fp, $out);
while(!feof($fp))
{
$temp=fgets($fp,1024);
$str=$str.$temp;
}
fclose($fp);
}
}
return $str;
}
function Checkimg($str,$tid,$pid){
global $db, $tablepre, $attachsave;
$exp1='[img]';
$exp2='[/img]';
$pre1='[attach]';
$pre2='[/attach]';
$Maxper=20;//限制转换数目$Maxper-1次,防止超时,0不限制
$attid=0; //改变量千万不能修改
//echo $str;
$r = explode ($exp1, $str);
$count=count ($r);
$Loopend=$count<$Maxper?$count:$Maxper;
$text=$r[0];
for ($i = 1; $i < $Loopend; $i++)
{
$upflag=false;
$r1 = explode ($exp2, $r[$i]);
if ((strstr ($r1[0], 'http://') OR strstr ($r1[0], 'https://')))
{
$dourl = $r1[0];
$nurl=Copyimg($dourl,$tid,$pid,&$upflag);
if($upflag){
$text.=$pre1.$nurl.$pre2.$r1[1];
$attid ++;
}else{
if($nurl) $text.=$exp1.$nurl.$exp2.$r1[1];
}
}else{
$text.=$exp1.$r1[0].$exp2.$r1[1];
}
}
for($i=$Loopend;$i<$count;$i++){
$r1 = explode ($exp2, $r[$i]);
$text.=$exp1.$r1[0].$exp2.$r1[1];
}
if($attid){
$db->query("update {$tablepre}posts set message='$text',attachment=attachment+$attid where pid='$pid'", 'UNBUFFERED');
$db->query("UPDATE {$tablepre}threads SET attachment='1' WHERE tid='$tid'", 'UNBUFFERED');
}
return $text;
}
function CK_mkdir($htmldir){
if (file_exists($htmldir)) {
return;
} else {
@mkdir($htmldir,0777);
@fclose(fopen($htmldir.'/index.htm', 'w'));
}
return;
}
?>
if(!in_array($ext,array('jpg','gif','jpeg','bmp','png')))return $nurl;在此处加入要上传的附件扩展名,比如torrent后虽然可以上传但是以图片形式上传的,会出现红X!!!
改成自动上传附件后,这一块的又应该怎么改
$message = preg_replace('/\[attachimg\](\d+)\[\/attachimg\]/is', '[attach]\1[/attach]', $message);
if($imagecopy){
$message=@Checkimg($message,$tid,$pid);
}
小弟是完全菜鸟,高手大哥帮帮忙谢谢了
4 个解决方案
#1
兄弟帮你踩下,爱莫能助哦!
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!
圣诞版许愿墙来啰!没有人回复好伤心哦.
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!昵友们,一起许个愿祝福他们! 大家都去许个愿,因些版本正在测试中,有较多缺点,请大家指正,如果有高级美工设计师,请帮忙给处理下美工,让我们心中的他或她幸福吧!
祝福地址:http://www.itgoto.com.cn/bbs
如果你有兴趣也可以在我的博客里面留言哦.记得我哦.祝福你们想要祝福的人吧.愿他/她们都美好!
博客地址:http://www.itgoto.com.cn/
论坛地址:http://www.itgoto.com.cn/bbs
大家要多多支持哦,顺便点点广告哦.有交换链接的请Q我.329071213
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!
圣诞版许愿墙来啰!没有人回复好伤心哦.
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!昵友们,一起许个愿祝福他们! 大家都去许个愿,因些版本正在测试中,有较多缺点,请大家指正,如果有高级美工设计师,请帮忙给处理下美工,让我们心中的他或她幸福吧!
祝福地址:http://www.itgoto.com.cn/bbs
如果你有兴趣也可以在我的博客里面留言哦.记得我哦.祝福你们想要祝福的人吧.愿他/她们都美好!
博客地址:http://www.itgoto.com.cn/
论坛地址:http://www.itgoto.com.cn/bbs
大家要多多支持哦,顺便点点广告哦.有交换链接的请Q我.329071213
#2
高手指教了,谢谢
#3
麻烦知道的解答一下,谢谢
#4
高手大哥帮帮忙谢谢了
#1
兄弟帮你踩下,爱莫能助哦!
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!
圣诞版许愿墙来啰!没有人回复好伤心哦.
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!昵友们,一起许个愿祝福他们! 大家都去许个愿,因些版本正在测试中,有较多缺点,请大家指正,如果有高级美工设计师,请帮忙给处理下美工,让我们心中的他或她幸福吧!
祝福地址:http://www.itgoto.com.cn/bbs
如果你有兴趣也可以在我的博客里面留言哦.记得我哦.祝福你们想要祝福的人吧.愿他/她们都美好!
博客地址:http://www.itgoto.com.cn/
论坛地址:http://www.itgoto.com.cn/bbs
大家要多多支持哦,顺便点点广告哦.有交换链接的请Q我.329071213
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!
圣诞版许愿墙来啰!没有人回复好伤心哦.
圣诞节到了,大家快来许个愿吧.博主在此欢迎你们的光临!昵友们,一起许个愿祝福他们! 大家都去许个愿,因些版本正在测试中,有较多缺点,请大家指正,如果有高级美工设计师,请帮忙给处理下美工,让我们心中的他或她幸福吧!
祝福地址:http://www.itgoto.com.cn/bbs
如果你有兴趣也可以在我的博客里面留言哦.记得我哦.祝福你们想要祝福的人吧.愿他/她们都美好!
博客地址:http://www.itgoto.com.cn/
论坛地址:http://www.itgoto.com.cn/bbs
大家要多多支持哦,顺便点点广告哦.有交换链接的请Q我.329071213
#2
高手指教了,谢谢
#3
麻烦知道的解答一下,谢谢
#4
高手大哥帮帮忙谢谢了