背景描述:

织梦cms采集图片集时, 需要使用织梦cms提供的"网上复制图片"的功能, 好像我这里这个功能一直不可用, 今天下定决心研究了下源代码并进行了适当修改, 将我的修改提供给大家参考

操作步骤:

1. 采用IE浏览器, 发布图集

 
注: 
复制的源网址需要清空
粘贴源代码(如: <img src='http://icon.nipic.com/BannerPic/20170928/home/20170928155702.jpg' />)到上图的第三个框

2. 打开dede/inc/inc_archives_functions.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();
//echo "<br />body: ".$body;
preg_match_all("/(src)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array);
//echo "<br />";
//print_r($img_array);
$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)
{
for ($i = 0; $i < count($value); $i++)
{
$value1 = $value[$i];
$value1 = trim($value1);
$value1 = str_replace("src='", "", $value1);
$value1 = str_replace("src=", "", $value1);
$value1 = str_replace("src=\"", "", $value1);
//echo "<br />value1: ".$value1;
if(preg_match("#".$basehost."#i", $value1) || !preg_match("#^http:\/\/#i", $value1)
|| ($cfg_basehost != $basehost && preg_match("#".$cfg_basehost."#i", $value1)))
{
//echo "<br />continue;";
continue;
}
$itype = substr($value1, -4, 4);
if( !preg_match("#\.(gif|jpg|png)#", $itype) ) $itype = ".jpg"; $rndFileName = $imgPath.'/'.$milliSecond.'-'.$key.'-'.$i.$itype;
$iurl = $imgUrl.'/'.$milliSecond.'-'.$key.'-'.$i.$itype;
//echo "<br /> iurl:".$iurl; //下载并保存文件
$rs = DownImageKeep($value1, $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;
}
 
备注: 替换你的代码时, 强烈建议先备份.

织梦cms网上复制图片不可用的解决方法的更多相关文章

  1. dedecms织梦系统后台验证码图片不显示的解决方法

    网站迁移后,dedecms织梦系统后台验证码图片不显示的解决方法通用解决方案-取消后台验证码功能因为没有验证码,不能进后台,所以修改php文件源代码:方法一:打开dede/login.php 找到如下 ...

  2. php中(包括织梦cms)set_time_limit(0)不起作用的解决方法

    背景介绍: 在做织梦冗余图片清理的功能时, 由于冗余图片太多,导致每次清理时都会超时, 后来在网上搜索了各种文章,网上有如下的解决方法: set_time_limit(0) ini_set('max_ ...

  3. 织梦CMS增加复制文档功能

    打开后台目录(/dede)下archives_do.php约430行下添加: /*----------------------------- //复制文档 ---------------------- ...

  4. [转载]织梦CMS首页调用分类信息栏目及列表方法

    原文地址:织梦CMS首页调用分类信息栏目及列表方法作者:小武哥 不懂代码,搜索学习一晚上,都是说调用特定栏目分类信息列表的,用这个代码 {dede:arclistsg row='10' titlele ...

  5. Dedecms织梦后台登陆验证码不显示几种解决方法

    Dedecms织梦后台登陆验证码不显示几种解决方法,服务器所造成的验证码不显示问题看这里: 方法一:查看服务器的php版本是否与程序版本兼容(织梦程序PHP版本查看方法:打开www.96net.com ...

  6. (转)织梦cms首页添加digg顶一下的修改方法

    现在把文章内容页拔的顶拔出来.分享一下让各位需要的朋友参考使用(特别注意:红色的是修改的地方)第一步:把顶踩的js和ajax提取出来,放在想要使用的页面用(比如:首页)以下是内容页顶踩用的js.提取出 ...

  7. 织梦CMS首页调用分类信息栏目及列表方法

    不懂代码,搜索学习一晚上,都是说调用特定栏目分类信息列表的,用这个代码 {dede:arclistsg row='10' titlelen='24' orderby='pubdate' channel ...

  8. dede织梦跨频道调用指定栏目文章的解决方法

    很久没有写技术类的文章了,这次这个标题写的- 呃, 有一点儿纠结. 事情是这样的,刚刚回答了一个百度问答上的问题,这个问题的大体意思是,有一个图片栏目,内含3个子栏目,分别为图片栏目1.2和3,另有三 ...

  9. 织梦DEDECMS本地后台操作卡顿的解决方法

    打开/data/common.inc.php,把默认的$cfg_dbhost = ‘localhost‘修改为$cfg_dbhost = ‘127.0.0.1’;保存.然后你会发现后台操作起来流畅多了 ...

随机推荐

  1. Bzoj1901 Dynamic Ranking

    动态区间第k小 离散化后 那么每个点开一棵线段树(主席树)再套一个树状数组在外面 每次询问区间内的树的个数时 相当于进行了一次树状数组求区间和的操作,只是是把树状数组那个点看做主席树,对log棵主席树 ...

  2. 改数据库编码latin1为utf8

    因为建数据库的时候没有选utf8,所以默认是latin1 在网上查了好多资料 ,试了很多种方法,都不奏效,有用的一个竟然要一列一列的改, 最后在评论里发现了这个,抱着试一试的心态竟然成功改过来了,在这 ...

  3. Java项目中环境变量的问题

    刚入职程序员的小朋友,第一次往eclipse导入项目总会出现这样那样的错误. 总结了几种查看和处理的方法: 1.打开project-->clean.然后build.目的将工程中的.class文件 ...

  4. Redis之Zset

    一.Redis之Zset简介 1. 有序集合Zset是String类型的有序集合. 2. Zset中每个元素都会关联一个double类型的分数值,redis通过分数值来为集合中所有成员进行从小到大排序 ...

  5. Y2 MyBatis(二)

    春节后的第一次课 1.整合日志(log4j和logback) (1)log4j和logback都是一个日志记录框架 (2)appender记住两个 stdout控制台显示日志,file记录文件中 (3 ...

  6. 项目角度谈矢量切片运用以及Geoserver处理自定义规格矢量切片方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1. 背景 矢量切图方案目前已经是很常见的一个方案,在2016年时团队 ...

  7. 利用CDLinux里面的水滴破解路由器密码的教程

    工具: 1.CDLinux系统镜像(网上有很多,这里我提供一个我使用的:http://yunpan.cn/cFgIifL8s6zUF 访问密码 a0ef) 2.U盘一个,不需要很大.(可以使用虚拟机安 ...

  8. mybatis-配置文件mybatis-config.xml

    在mybatis-config.xml中有初始的配置: <!-- 对事务的管理和连接池的配置 --> <environments default="development& ...

  9. Linux系统-解压缩命令集合

    Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...

  10. SpringtMVC中配置 <mvc:annotation-driven/> 与 <mvc:default-servlet-handler/> 源码解析

    上一篇有提到,当有.无这两个标签时,SpringtMVC 底层所采用的  HandlerMapping 以及 HandlerAdapter 是不一样的.现在就来进行源码调试,揭开 SpringtMVC ...