dedecms inc_functions.php,dedecms/inc_archives_functions.php at master · webcoding/dedecms · GitHub...

/**

* 文档操作相关函数

*

* @version $Id: inc_archives_functions.php 1 9:56 2010年7月21日Z tianya $

* @package DedeCMS.Administrator

* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.

* @license http://help.dedecms.com/usersguide/license.html

* @link http://www.dedecms.com

*/

require_once(DEDEINC.'/dedehttpdown.class.php');

require_once(DEDEINC.'/image.func.php');

require_once(DEDEINC.'/archives.func.php');

require_once(DEDEINC.'/arc.partview.class.php');

$backurl = !empty($_COOKIE['ENV_GOBACK_URL']) ? $_COOKIE['ENV_GOBACK_URL'] : '';

$backurl = preg_match("#content_#", $backurl) ? "[记忆的列表页]  " : '';

if(!isset($_NOT_ARCHIVES))

{

require_once(DEDEINC.'/customfields.func.php');

}

/**

* 获得HTML里的外部资源,针对图集

*

* @access public

* @param string $body 文档内容

* @param string $rfurl 来源地址

* @param string $firstdd 开始标记

* @return string

*/

function GetCurContentAlbum($body, $rfurl, &$firstdd)

{

global $dsql,$cfg_multi_site,$cfg_basehost,$cfg_ddimg_width;

global $cfg_basedir,$pagestyle,$cuserLogin,$cfg_addon_savetype;

require_once(DEDEINC.'/dedecollection.func.php');

if(empty($cfg_ddimg_width)) $cfg_ddimg_width = 320;

$rsimg = '';

$cfg_uploaddir = $GLOBALS['cfg_image_dir'];

$cfg_basedir = $GLOBALS['cfg_basedir'];

$basehost = 'http://'.$_SERVER['HTTP_HOST'];

$img_array = array();

preg_match_all("/(src)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);

$img_array = array_unique($img_array[2]);

$imgUrl = $cfg_uploaddir.'/'.MyDate($cfg_addon_savetype, time());

$imgPath = $cfg_basedir.$imgUrl;

if(!is_dir($imgPath.'/'))

{

MkdirAll($imgPath,$GLOBALS['cfg_dir_purview']);

CloseFtp();

}

$milliSecond = 'co'.dd2char( MyDate('ymdHis',time())) ;

foreach($img_array as $key=>$value)

{

$value = trim($value);

if(preg_match("#".$basehost."#i", $value) || !preg_match("#^http:\/\/#i", $value)

|| ($cfg_basehost != $basehost && preg_match("#".$cfg_basehost."#i", $value)))

{

continue;

}

$itype = substr($value, -4, 4);

if( !preg_match("#\.(gif|jpg|png)#", $itype) ) $itype = ".jpg";

$rndFileName = $imgPath.'/'.$milliSecond.'-'.$key.$itype;

$iurl = $imgUrl.'/'.$milliSecond.'-'.$key.$itype;

//下载并保存文件

$rs = DownImageKeep($value, $rfurl, $rndFileName, '', 0, 30);

if($rs)

{

$info = '';

$imginfos = GetImageSize($rndFileName, $info);

$fsize = filesize($rndFileName);

$filename = $milliSecond.'-'.$key.$itype;

//保存图片附件信息

$inquery = "INSERT INTO `#@__uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)

VALUES ('0','$filename','$iurl','1','{$imginfos[0]}','$imginfos[1]','0','$fsize','".time()."','".$cuserLogin->getUserID()."'); ";

$dsql->ExecuteNoneQuery($inquery);

$fid = $dsql->GetLastID();

AddMyAddon($fid, $iurl);

if($pagestyle > 2)

{

$litpicname = GetImageMapDD($iurl, $cfg_ddimg_width);

}

else

{

$litpicname = $iurl;

}

if(empty($firstdd) && !empty($litpicname))

{

$firstdd = $litpicname;

if(!file_exists($cfg_basedir.$firstdd))

{

$firstdd = $iurl;

}

}

@WaterImg($rndFileName, 'down');

$rsimg .= "{dede:img ddimg='$litpicname' text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}\r\n";

}

}

return $rsimg;

}

/**

* 获得文章body里的外部资源

*

* @access public

* @param string $body 文档内容

* @return string

*/

function GetCurContent($body)

{

global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir,$arcID,$cuserLogin,$dsql;

$cfg_uploaddir = $cfg_image_dir;

$htd = new DedeHttpDown();

$basehost = "http://".$_SERVER["HTTP_HOST"];

$img_array = array();

preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);

$img_array = array_unique($img_array[1]);

$imgUrl = $cfg_uploaddir.'/'.MyDate("ymd", time());

$imgPath = $cfg_basedir.$imgUrl;

if(!is_dir($imgPath.'/'))

{

MkdirAll($imgPath, $GLOBALS['cfg_dir_purview']);

CloseFtp();

}

$milliSecond = MyDate('His',time());

foreach($img_array as $key=>$value)

{

if(preg_match("#".$basehost."#i", $value))

{

continue;

}

if($cfg_basehost != $basehost && preg_match("#".$cfg_basehost."#i", $value))

{

continue;

}

if(!preg_match("#^http:\/\/#i", $value))

{

continue;

}

$htd->OpenUrl($value);

$itype = $htd->GetHead("content-type");

$itype = substr($value, -4, 4);

if(!preg_match("#\.(jpg|gif|png)#i", $itype))

{

if($itype=='image/gif')

{

$itype = ".gif";

}

else if($itype=='image/png')

{

$itype = ".png";

}

else

{

$itype = '.jpg';

}

}

$milliSecondN = dd2char($milliSecond.mt_rand(1000, 8000));

$value = trim($value);

$rndFileName = $imgPath.'/'.$milliSecondN.'-'.$key.$itype;

$fileurl = $imgUrl.'/'.$milliSecondN.'-'.$key.$itype;

$rs = $htd->SaveToBin($rndFileName);

if($rs)

{

$info = '';

$imginfos = GetImageSize($rndFileName, $info);

$fsize = filesize($rndFileName);

//保存图片附件信息

$inquery = "INSERT INTO `#@__uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)

VALUES ('{$arcID}','$rndFileName','$fileurl','1','{$imginfos[0]}','$imginfos[1]','0','$fsize','".time()."','".$cuserLogin->getUserID()."'); ";

$dsql->ExecuteNoneQuery($inquery);

$fid = $dsql->GetLastID();

AddMyAddon($fid, $fileurl);

if($cfg_multi_site == 'Y')

{

$fileurl = $cfg_basehost.$fileurl;

}

$body = str_replace($value, $fileurl, $body);

@WaterImg($rndFileName, 'down');

}

}

$htd->Close();

return $body;

}

/**

* 获取一个远程图片

*

* @access public

* @param string $url 地址

* @param int $uid 用户id

* @return array

*/

function GetRemoteImage($url, $uid=0)

{

global $cfg_basedir, $cfg_image_dir, $cfg_addon_savetype;

$cfg_uploaddir = $cfg_image_dir;

$revalues = Array();

$ok = false;

$htd = new DedeHttpDown();

$htd->OpenUrl($url);

$sparr = Array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp");

if(!in_array($htd->GetHead("content-type"),$sparr))

{

return '';

}

else

{

$imgUrl = $cfg_uploaddir.'/'.MyDate($cfg_addon_savetype, time());

$imgPath = $cfg_basedir.$imgUrl;

CreateDir($imgUrl);

$itype = $htd->GetHead("content-type");

if($itype=="image/gif")

{

$itype = '.gif';

}

else if($itype=="image/png")

{

$itype = '.png';

}

else if($itype=="image/wbmp")

{

$itype = '.bmp';

}

else

{

$itype = '.jpg';

}

$rndname = dd2char($uid.'_'.MyDate('mdHis',time()).mt_rand(1000,9999));

$rndtrueName = $imgPath.'/'.$rndname.$itype;

$fileurl = $imgUrl.'/'.$rndname.$itype;

$ok = $htd->SaveToBin($rndtrueName);

@WaterImg($rndtrueName, 'down');

if($ok)

{

$data = GetImageSize($rndtrueName);

$revalues[0] = $fileurl;

$revalues[1] = $data[0];

$revalues[2] = $data[1];

}

}

$htd->Close();

return ($ok ? $revalues : '');

}

/**

* 获取远程flash

*

* @access public

* @param string $url 地址

* @param int $uid 用户id

* @return string

*/

function GetRemoteFlash($url, $uid=0)

{

global $cfg_addon_savetype, $cfg_media_dir, $cfg_basedir;

$cfg_uploaddir = $cfg_media_dir;

$revalues = '';

$sparr = 'application/x-shockwave-flash';

$htd = new DedeHttpDown();

$htd->OpenUrl($url);

if($htd->GetHead("content-type")!=$sparr)

{

return '';

}

else

{

$imgUrl = $cfg_uploaddir.'/'.MyDate($cfg_addon_savetype, time());

$imgPath = $cfg_basedir.$imgUrl;

CreateDir($imgUrl);

$itype = '.swf';

$milliSecond = $uid.'_'.MyDate('mdHis', time());

$rndFileName = $imgPath.'/'.$milliSecond.$itype;

$fileurl = $imgUrl.'/'.$milliSecond.$itype;

$ok = $htd->SaveToBin($rndFileName);

if($ok)

{

$revalues = $fileurl;

}

}

$htd->Close();

return $revalues;

}

/**

* 检测频道ID

*

* @access public

* @param int $typeid 栏目ID

* @param int $channelid 频道ID

* @return bool

*/

function CheckChannel($typeid, $channelid)

{

global $dsql;

if($typeid==0) return TRUE;

$row = $dsql->GetOne("SELECT ispart,channeltype FROM `#@__arctype` WHERE id='$typeid' ");

if($row['ispart']!=0 || $row['channeltype'] != $channelid) return FALSE;

else return TRUE;

}

/**

* 检测档案权限

*

* @access public

* @param int $aid 文档AID

* @param int $adminid 管理员ID

* @return bool

*/

function CheckArcAdmin($aid, $adminid)

{

global $dsql;

$row = $dsql->GetOne("SELECT mid FROM `#@__archives` WHERE id='$aid' ");

if($row['mid']!=$adminid) return FALSE;

else return TRUE;

}

/**

* 文档自动分页

*

* @access public

* @param string $mybody 内容

* @param string $spsize 分页大小

* @param string $sptag 分页标记

* @return string

*/

function SpLongBody($mybody, $spsize, $sptag)

{

if(strlen($mybody) < $spsize)

{

return $mybody;

}

$mybody = stripslashes($mybody);

$bds = explode('

$npageBody = '';

$istable = 0;

$mybody = '';

foreach($bds as $i=>$k)

{

if($i==0)

{

$npageBody .= $bds[$i]; continue;

}

$bds[$i] = "

if(strlen($bds[$i])>6)

{

$tname = substr($bds[$i],1,5);

if(strtolower($tname)=='table')

{

$istable++;

}

else if(strtolower($tname)=='/tabl')

{

$istable--;

}

if($istable>0)

{

$npageBody .= $bds[$i]; continue;

}

else

{

$npageBody .= $bds[$i];

}

}

else

{

$npageBody .= $bds[$i];

}

if(strlen($npageBody)>$spsize)

{

$mybody .= $npageBody.$sptag;

$npageBody = '';

}

}

if($npageBody!='')

{

$mybody .= $npageBody;

}

return addslashes($mybody);

}

/**

* 创建指定ID的文档

*

* @access public

* @param string $aid 文档ID

* @param string $ismakesign 生成标志

* @param int $isremote 是否远程

* @return string

*/

function MakeArt($aid, $mkindex=FALSE, $ismakesign=FALSE, $isremote=0)

{

global $envs, $typeid;

require_once(DEDEINC.'/arc.archives.class.php');

if($ismakesign) $envs['makesign'] = 'yes';

$arc = new Archives($aid);

$reurl = $arc->MakeHtml($isremote);

return $reurl;

}

/**

* 取第一个图片为缩略图

*

* @access public

* @param string $body 文档内容

* @return string

*/

function GetDDImgFromBody(&$body)

{

$litpic = '';

preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|bmp|png))/isU",$body,$img_array);

$img_array = array_unique($img_array[2]);

if(count($img_array)>0)

{

$picname = preg_replace("/[\"|'| ]{1,}/", '', $img_array[0]);

if(preg_match("#_lit\.#", $picname)) $litpic = $picname;

else $litpic = GetDDImage('ddfirst', $picname,1);

}

return $litpic;

}

/**

* 获得缩略图

*

* @access public

* @param string $litpic 缩略图

* @param string $picname 图片名称

* @param string $isremote 是否远程

* @return string

*/

function GetDDImage($litpic, $picname, $isremote)

{

global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;

$ntime = time();

if( ($litpic != 'none' || $litpic != 'ddfirst') &&

!empty($_FILES[$litpic]['tmp_name']) && is_uploaded_file($_FILES[$litpic]['tmp_name']))

{

//如果用户自行上传缩略图

$istype = 0;

$sparr = Array("image/pjpeg", "image/jpeg", "image/gif", "image/png");

$_FILES[$litpic]['type'] = strtolower(trim($_FILES[$litpic]['type']));

if(!in_array($_FILES[$litpic]['type'], $sparr))

{

ShowMsg("上传的图片格式错误,请使用JPEG、GIF、PNG格式的其中一种!","-1");

exit();

}

$savepath = $ddcfg_image_dir.'/'.MyDate($cfg_addon_savetype, $ntime);

CreateDir($savepath);

$fullUrl = $savepath.'/'.dd2char(MyDate('mdHis', $ntime).$cuserLogin->getUserID().mt_rand(1000, 9999));

if(strtolower($_FILES[$litpic]['type']) == "image/gif")

{

$fullUrl = $fullUrl.".gif";

}

else if(strtolower($_FILES[$litpic]['type']) == "image/png")

{

$fullUrl = $fullUrl.".png";

}

else

{

$fullUrl = $fullUrl.".jpg";

}

@move_uploaded_file($_FILES[$litpic]['tmp_name'], $cfg_basedir.$fullUrl);

$litpic = $fullUrl;

if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($cfg_basedir.$fullUrl,$cfg_ddimg_width,$cfg_ddimg_height);

else @ImageResize($cfg_basedir.$fullUrl,$cfg_ddimg_width,$cfg_ddimg_height);

$img = $cfg_basedir.$litpic;

}

else

{

$picname = trim($picname);

if($isremote==1 && preg_match("#^http:\/\/#i", $picname))

{

$litpic = $picname;

$ddinfos = GetRemoteImage($litpic, $cuserLogin->getUserID());

if(!is_array($ddinfos))

{

$litpic = '';

}

else

{

$litpic = $ddinfos[0];

if($ddinfos[1] > $cfg_ddimg_width || $ddinfos[2] > $cfg_ddimg_height)

{

if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($cfg_basedir.$litpic,$cfg_ddimg_width,$cfg_ddimg_height);

else @ImageResize($cfg_basedir.$litpic,$cfg_ddimg_width,$cfg_ddimg_height);

}

}

}

else

{

if($litpic=='ddfirst' && !preg_match("#^http:\/\/#i", $picname))

{

$oldpic = $cfg_basedir.$picname;

$litpic = str_replace('.', '-lp.', $picname);

if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);

else @ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);

if(!is_file($cfg_basedir.$litpic)) $litpic = '';

}

else

{

$litpic = $picname;

return $litpic;

}

}

}

if($litpic=='litpic' || $litpic=='ddfirst') $litpic = '';

return $litpic;

}

/**

* 获得一个附加表单

*

* @access public

* @param object $ctag ctag

* @return string

*/

function GetFormItemA($ctag)

{

return GetFormItem($ctag, 'admin');

}

/**

* 处理不同类型的数据

*

* @access public

* @param string $dvalue

* @param string $dtype

* @param int $aid

* @param string $job

* @param string $addvar

* @return string

*/

function GetFieldValueA($dvalue, $dtype, $aid=0, $job='add', $addvar='')

{

return GetFieldValue($dvalue, $dtype, $aid, $job, $addvar, 'admin');

}

/**

* 获得带值的表单(编辑时用)

*

* @access public

* @param object $ctag ctag

* @param string $fvalue fvalue

* @return string

*/

function GetFormItemValueA($ctag, $fvalue)

{

return GetFormItemValue($ctag, $fvalue, 'admin');

}

/**

* 载入自定义表单(用于发布)

*

* @access public

* @param string $fieldset 字段列表

* @param string $loadtype 载入类型

* @return string

*/

function PrintAutoFieldsAdd(&$fieldset, $loadtype='all')

{

$dtp = new DedeTagParse();

$dtp->SetNameSpace('field','');

$dtp->LoadSource($fieldset);

$dede_addonfields = '';

if(is_array($dtp->CTags))

{

foreach($dtp->CTags as $tid=>$ctag)

{

if($loadtype!='autofield'

|| ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )

{

$dede_addonfields .= ( $dede_addonfields=="" ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );

echo GetFormItemA($ctag);

}

}

}

echo "\r\n";

}

/**

* 载入自定义表单(用于编辑)

*

* @access public

* @param string $fieldset 字段列表

* @param string $fieldValues 字段值

* @param string $loadtype 载入类型

* @return string

*/

function PrintAutoFieldsEdit(&$fieldset, &$fieldValues, $loadtype='all')

{

$dtp = new DedeTagParse();

$dtp->SetNameSpace("field", "");

$dtp->LoadSource($fieldset);

$dede_addonfields = "";

if(is_array($dtp->CTags))

{

foreach($dtp->CTags as $tid=>$ctag)

{

if($loadtype != 'autofield'

|| ($loadtype == 'autofield' && $ctag->GetAtt('autofield') == 1) )

{

$dede_addonfields .= ( $dede_addonfields=='' ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );

echo GetFormItemValueA($ctag, $fieldValues[$ctag->GetName()]);

}

}

}

echo "\r\n";

}

/**

* 处理HTML文本

* 删除非站外链接、自动摘要、自动获取缩略图

*

* @access public

* @param string $body 内容

* @param string $description 描述

* @param string $litpic 缩略图

* @param string $keywords 关键词

* @param string $dtype 类型

* @return string

*/

function AnalyseHtmlBody($body,&$description,&$litpic,&$keywords,$dtype='')

{

global $autolitpic,$remote,$dellink,$autokey,$cfg_basehost,$cfg_auot_description,$id,$title,$cfg_soft_lang;

$autolitpic = (empty($autolitpic) ? '' : $autolitpic);

$body = stripslashes($body);

//远程图片本地化

if($remote==1)

{

$body = GetCurContent($body);

}

//删除非站内链接

if($dellink==1)

{

$allow_urls = array($_SERVER['HTTP_HOST']);

// 读取允许的超链接设置

if(file_exists(DEDEDATA."/admin/allowurl.txt"))

{

$allow_urls = array_merge($allow_urls, file(DEDEDATA."/admin/allowurl.txt"));

}

$body = Replace_Links($body, $allow_urls);

}

//自动摘要

if($description=='' && $cfg_auot_description>0)

{

$description = cn_substr(html2text($body),$cfg_auot_description);

$description = trim(preg_replace('/#p#|#e#/','',$description));

$description = addslashes($description);

}

//自动获取缩略图

if($autolitpic==1 && $litpic=='')

{

$litpic = GetDDImgFromBody($body);

}

//自动获取关键字

if($autokey==1 && $keywords=='')

{

$subject = $title;

$message = $body;

include_once(DEDEINC.'/splitword.class.php');

$keywords = '';

$sp = new SplitWord($cfg_soft_lang, $cfg_soft_lang);

$sp->SetSource($subject, $cfg_soft_lang, $cfg_soft_lang);

$sp->StartAnalysis();

$titleindexs = preg_replace("/#p#|#e#/",'',$sp->GetFinallyIndex());

$sp->SetSource(Html2Text($message), $cfg_soft_lang, $cfg_soft_lang);

$sp->StartAnalysis();

$allindexs = preg_replace("/#p#|#e#/",'',$sp->GetFinallyIndex());

if(is_array($allindexs) && is_array($titleindexs))

{

foreach($titleindexs as $k => $v)

{

if(strlen($keywords.$k)>=60)

{

break;

}

else

{

if(strlen($k) <= 2) continue;

$keywords .= $k.',';

}

}

foreach($allindexs as $k => $v)

{

if(strlen($keywords.$k)>=60)

{

break;

}

else if(!in_array($k,$titleindexs))

{

if(strlen($k) <= 2) continue;

$keywords .= $k.',';

}

}

}

$sp = null;

}

$body = GetFieldValueA($body,$dtype,$id);

$body = addslashes($body);

return $body;

}

/**

* 删除非站内链接

*

* @access public

* @param string $body 内容

* @param array $allow_urls 允许的超链接

* @return string

*/

function Replace_Links( &$body, $allow_urls=array() )

{

$host_rule = join('|', $allow_urls);

$host_rule = preg_replace("#[\n\r]#", '', $host_rule);

$host_rule = str_replace('.', "\\.", $host_rule);

$host_rule = str_replace('/', "\\/", $host_rule);

$arr = '';

preg_match_all("#]*)>(.*)#iU", $body, $arr);

if( is_array($arr[0]) )

{

$rparr = array();

$tgarr = array();

foreach($arr[0] as $i=>$v)

{

if( $host_rule != '' && preg_match('#'.$host_rule.'#i', $arr[1][$i]) )

{

continue;

} else {

$rparr[] = $v;

$tgarr[] = $arr[2][$i];

}

}

if( !empty($rparr) )

{

$body = str_replace($rparr, $tgarr, $body);

}

}

$arr = $rparr = $tgarr = '';

return $body;

}

/**

* 图集里大图的小图

*

* @access public

* @param string $filename 图片名称

* @param string $maxwidth 最大宽度

* @return string

*/

function GetImageMapDD($filename, $maxwidth)

{

global $cuserLogin, $dsql, $cfg_ddimg_height, $cfg_ddimg_full;

$ddn = substr($filename, -3);

$ddpicok = preg_replace("#\.".$ddn."$#", "-lp.".$ddn, $filename);

$toFile = $GLOBALS['cfg_basedir'].$ddpicok;

if($cfg_ddimg_full=='Y') ImageResizeNew($GLOBALS['cfg_basedir'].$filename, $maxwidth, $cfg_ddimg_height, $toFile);

else ImageResize($GLOBALS['cfg_basedir'].$filename, $maxwidth, $cfg_ddimg_height, $toFile);

//保存图片附件信息

$fsize = filesize($toFile);

$ddpicoks = explode('/', $ddpicok);

$filename = $ddpicoks[count($ddpicoks)-1];

$inquery = "INSERT INTO `#@__uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)

VALUES ('0','$filename','$ddpicok','1','0','0','0','$fsize','".time()."','".$cuserLogin->getUserID()."'); ";

$dsql->ExecuteNoneQuery($inquery);

$fid = $dsql->GetLastID();

AddMyAddon($fid, $ddpicok);

return $ddpicok;

}

/**

* 上传一个未经处理的图片

*

* @access public

* @param string $upname 上传框名称

* @param string $handurl 手工填写的网址

* @param string $ddisremote 是否下载远程图片 0 不下, 1 下载

* @param string $ntitle 注解文字 如果表单有 title 字段可不管

* @return mixed

*/

function UploadOneImage($upname,$handurl='',$isremote=1,$ntitle='')

{

global $cuserLogin,$cfg_basedir,$cfg_image_dir,$title, $dsql;

if($ntitle!='')

{

$title = $ntitle;

}

$ntime = time();

$filename = '';

$isrm_up = FALSE;

$handurl = trim($handurl);

//如果用户自行上传了图片

if(!empty($_FILES[$upname]['tmp_name']) && is_uploaded_file($_FILES[$upname]['tmp_name']))

{

$istype = 0;

$sparr = Array("image/pjpeg", "image/jpeg", "image/gif", "image/png");

$_FILES[$upname]['type'] = strtolower(trim($_FILES[$upname]['type']));

if(!in_array($_FILES[$upname]['type'], $sparr))

{

ShowMsg("上传的图片格式错误,请使用JPEG、GIF、PNG格式的其中一种!","-1");

exit();

}

if(!empty($handurl) && !preg_match("#^http:\/\/#i", $handurl) && file_exists($cfg_basedir.$handurl) )

{

if(!is_object($dsql))

{

$dsql = new DedeSql();

}

$dsql->ExecuteNoneQuery("DELETE FROM `#@__uploads` WHERE url LIKE '$handurl' ");

$fullUrl = preg_replace("#\.([a-z]*)$#i", "", $handurl);

}

else

{

$savepath = $cfg_image_dir.'/'.strftime("%Y-%m",$ntime);

CreateDir($savepath);

$fullUrl = $savepath.'/'.strftime("%d",$ntime).dd2char(strftime("%H%M%S", $ntime).'0'.$cuserLogin->getUserID().'0'.mt_rand(1000, 9999));

}

if(strtolower($_FILES[$upname]['type'])=="image/gif")

{

$fullUrl = $fullUrl.".gif";

}

else if(strtolower($_FILES[$upname]['type'])=="image/png")

{

$fullUrl = $fullUrl.".png";

}

else

{

$fullUrl = $fullUrl.".jpg";

}

//保存

@move_uploaded_file($_FILES[$upname]['tmp_name'], $cfg_basedir.$fullUrl);

$filename = $fullUrl;

//水印

@WaterImg($imgfile, 'up');

$isrm_up = TRUE;

}

//远程或选择本地图片

else

{

if($handurl=='')

{

return '';

}

//远程图片并要求本地化

if($isremote==1 && preg_match("#^http:\/\/#i", $handurl))

{

$ddinfos = GetRemoteImage($handurl, $cuserLogin->getUserID());

if(!is_array($ddinfos))

{

$litpic = "";

}

else

{

$filename = $ddinfos[0];

}

$isrm_up = TRUE;

//本地图片或远程不要求本地化

}

else

{

$filename = $handurl;

}

}

$imgfile = $cfg_basedir.$filename;

if(is_file($imgfile) && $isrm_up && $filename!='')

{

$info = "";

$imginfos = GetImageSize($imgfile, $info);

//把新上传的图片信息保存到媒体文档管理档案中

$inquery = "

INSERT INTO #@__uploads(title,url,mediatype,width,height,playtime,filesize,uptime,mid)

VALUES ('$title','$filename','1','".$imginfos[0]."','".$imginfos[1]."','0','".filesize($imgfile)."','".time()."','".$cuserLogin->getUserID()."');

";

$dsql->ExecuteNoneQuery($inquery);

}

return $filename;

}

/**

* 获取更新测试信息

*

* @access public

* @return string

*/

function GetUpdateTest()

{

global $arcID, $typeid, $cfg_make_andcat, $cfg_makeindex, $cfg_make_prenext;

$revalue = $dolist = '';

if($cfg_makeindex=='Y' || $cfg_make_andcat=='Y' || $cfg_make_prenext=='Y')

{

if($cfg_make_prenext=='Y' && !empty($typeid)) $dolist = 'makeprenext';

if($cfg_makeindex=='Y') $dolist .= empty($dolist) ? 'makeindex' : ',makeindex';

if($cfg_make_andcat=='Y') $dolist .= empty($dolist) ? 'makeparenttype' : ',makeparenttype';

$dolists = explode(',', $dolist);

$jumpUrl = "task_do.php?typeid={$typeid}&aid={$arcID}&dopost={$dolists[0]}&nextdo=".preg_replace("#".$dolists[0]."[,]{0,1}#", '', $dolist);

$revalue = "

 正在进行相关内容更新,请完成前不要进行其它操作:\r\n

$revalue .= "

\r\n\r\n\r\n";

$revalue .= "

";

}

else

{

$revalue = '';

}

return $revalue;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值