今天来谈一谈图片的闲事儿,大家都知道,织梦的采集功能很强大,我们也做过很多的论述,今天不在这里一一列举了,估计大家最烦的就是采集图片的名称问题了,太长了,而且和织梦默认的图片命名规则不一致,今天我们就来修改一下,让采集下来的图片更像手工添加的图片:大家在include文件夹下面的dedecollection.class /** * 获得下载媒体的随机名称 * * @access public * @param string $url 地址 * @param string $v 值 * @return string */ function GetRndName($url, $v) { global $cfg_image_dir,$cfg_dir_purview; $this->mediaCount++; $mnum = $this->mediaCount; $timedir = "140805"; //存放路径 $fullurl = preg_replace("#\/{1,}#", "/", $cfg_image_dir."/"); if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl")) { MkdirAll($GLOBALS['cfg_basedir']."/$fullurl", $cfg_dir_purview); } $fullurl = $fullurl.$timedir."/"; if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl")) { MkdirAll($GLOBALS['cfg_basedir']."/$fullurl", $cfg_dir_purview); } //文件名称 $timename = str_replace('.','', ExecTime()); $threadnum = 0; if(isset($_GET['threadnum'])) { $threadnum = intval($_GET['threadnum']); } $filename = dd2char($timename.$threadnum.'-'.$mnum.mt_rand(1000,9999)); //分配扩展名 $urls = explode('.',$url); if($v=='img') { $shortname = '.jpg'; if(preg_match("#\.gif$#i", $url)) { $shortname = '.gif'; } else if(preg_match("#\.png$#i", $url)) { $shortname = '.png'; } } else if($v=='embed') { $shortname = '.swf'; } else { $shortname = ''; } $fullname = $fullurl.$filename.$shortname; return preg_replace("#\/{1,}#", "/", $fullname); } 这段代码就是织梦默认采集下载附件的命名代码,里面有一句: $filename = dd2char($timename.$threadnum.'-'.$mnum.mt_rand(1000,9999)); 修改为: $filename = dd2char('1-'.$timename.$threadnum); 然后打开后台的采集功能,就可以实现了。不过还一个问题,就是添加图片的缩略图后缀是"-ip",而采集下来的图片后缀是"-lit",这个地方我们同样可以修改,在相同文件之中查找: //生成缩略图 if($mtype=='img' && !$islitpic && $this->breImage=='') { $this->breImage = $filename; if(!preg_match("#^http:\/\/#", $this->breImage) && file_exists($GLOBALS['cfg_basedir'].$filename)) { $filenames = explode('/',$filename); $filenamed = $filenames[count($filenames)-1]; $nfilename = str_replace('.','_lit.',$filenamed); $nfilename = str_replace($filenamed,$nfilename,$filename); if(@copy($GLOBALS['cfg_basedir'].$filename, $GLOBALS['cfg_basedir'].$nfilename)) { ImageResize($GLOBALS['cfg_basedir'].$nfilename,$GLOBALS['cfg_ddimg_width'],$GLOBALS['cfg_ddimg_height']); $this->breImage = $nfilename; } } } if($mtype=='img' && !$islitpic) { @WaterImg($GLOBALS['cfg_basedir'].$filename,'collect'); } return $filename; } 将里面的 $nfilename = str_replace('.','_lit.',$filenamed); 看到没有,将里面的"_lit"修改成你自己喜欢的后缀就可以,最好是"-lp"和官方默认的一致。 (责任编辑:迷城网络科技) |