Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

discuz远程图片下载并保存到服务器插件【已提供下载】

[复制链接]
scckfzx 发表于 2008-8-17 23:26:55 | 显示全部楼层 |阅读模式
本帖最后由 scckfzx 于 2009-11-28 17:11 编辑

找插件网DISCUZ远程图片自动下载保存插件

说明:有的人跟我说新浪的图片不能保存,请安装前仔细看下我的安装说明!

简介:     
        适用版本discuz6.1.0版本。
        此插件是很多论坛朋友都需要的功能,但discuz考虑到安全及布局问题,始终没有为广大站长提供此功能。为此找插件网为大家做了这个插件,此插件采用官方推荐的钩子方式。安装方便,卸载方便干净,系统升级方便希望能方便广大网友。但您在使用此插件前必须清楚可能存在的风险,正如discuz所说,让一个普通的用户任意下载远程文件到服务器上对服务器的安全绝对是一大挑战,因此您务必要小心。
     本插件可以下载目前大部分图片文件,默认是不支持无图片后缀的图片文件下载,如新浪博客图片就没有后缀,大家可以去看看,但为了一起买主机团购网下一步DISCUZ自动采集、内容发布插件的开发,在此还是为站长提供了此功能,你可以在./plugins/17buyhost/17buyhost.inc.php 文件中找到一段关于图片获取的正则说明,说明中有两种正则表达式,另外一种就是可以下载新浪等无图片后缀的图片文件,你只要用另外一种正则代替当前正则就可以了。出于安全考虑,不建议你这么做。我们会针对权限控制进行升级,当然你们也可以自己升级。
另httpdown.class.php是一个比较完整的HTTP下载类,大家可以用来用PHP下载除脚本之外的任何文件。
安装:
1、将17buyhost文件夹拷贝到plugins目录下。进入后台-->扩展-->导入-->/plugins/17buyhost/discuz_plugin_picture.txt导入。

2、打开include/newreply.inc.php在约229行找到$pinvisible = $modnewreplies ? -2 : 0;
在其后面插入eval($hooks['picture_down']);  保存。

3、打开include/newthread.inc.php在约364行找到$pinvisible = $modnewreplies ? -2 : 0;
在其后面插入eval($hooks['picture_down']);  保存。

安装完成。

卸载:
在后台删除插件,然后在上面两个文件中删除相应的行,在plugins目录下删除17buyhost文件夹。
欢迎访问我的网站


感谢19楼的  xuezhou118  提出的问题,在此说明一下:

由于安装此插件后发过的帖子的图片都是本地化的了,如果在编辑中在运行插件的话等于无谓的消耗了系统资源.因此插件没在这挂钩子,但如果,如果安装插件之前论坛已经有很多图片是远程的话,你可以通过下面的办法,采用编辑的方式重新保存一下就可以本地化了.
include/editpost.inc.php  中约765行
  1. $message = preg_replace('/\[attachimg\](\d+)\[\/attachimg\]/is', '[attach]\1[/attach]', $message);
复制代码
后加上
  1. eval($hooks['picture_down']);
复制代码
等图片本地化了之后把这句在删除.可以节约系统资源.

由于这几天在重新设计DISCUZ论坛爬虫的算法,没有太多的时间为个人专门做批量转化程序,但如果需要的人多的话,请留个言,我抽空做个批量转化工具.

注:很多会员要求把图片转成附件及水印,我会在下周完成此功能,感谢大家的支持~8.22更新


[ 本帖最后由 scckfzx 于 2008-9-9 21:09 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

3

查看全部评分

mosen77 发表于 2008-8-17 23:44:50 | 显示全部楼层
毕竟楼主是个新人..我很怀疑....
回复

使用道具 举报

凡军 发表于 2008-8-17 23:57:02 | 显示全部楼层
先占地看情况
回复

使用道具 举报

 楼主| scckfzx 发表于 2008-8-18 00:08:06 | 显示全部楼层

回复 2# mosen77 的帖子

呵呵~
不说话的不一定是哑巴!

说下我的思路吧,为了不影响论坛及以后的升级,把这块独立出来了。

1、写个http下载的类.主要用来下载远程文件.
2、在表cdb_POSTS中MESSAGE字段中按以下两种正则(根据你的需要)搜索图片链接
1)preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/(.*)\.(gif|jpg|jpeg|bmp|png))/isU",$body,$img_array);
这种是正常情况下使用的。但像新浪博客的图片就不行,他的图片都没后缀。要想也下载没后缀的用下面的正则。
2)preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/(.*)(\.gif|\.jpg|\.jpeg|\.bmp|\.png)?[\"|'| ])/isU",$body,$img_array);
找到之后根据链接用http下载类下载图片保存到本地,然后在将保存图片的路径代替上面的链接。

其实道理就这么简单,也不难!
回复

使用道具 举报

liukuihappy 发表于 2008-8-18 00:54:33 | 显示全部楼层
绝对需要,这个功能非常好
回复

使用道具 举报

hoocoo 发表于 2008-8-18 01:26:02 | 显示全部楼层
我的坛子就能远程图片保存啊
坛子不是有人发过了么
回复

使用道具 举报

潮儿 发表于 2008-8-18 01:52:38 | 显示全部楼层
顶个                            
回复

使用道具 举报

essaye 发表于 2008-8-18 01:52:50 | 显示全部楼层
支持以下 要哇。。》~
回复

使用道具 举报

 楼主| scckfzx 发表于 2008-8-18 08:39:44 | 显示全部楼层
原帖由 hoocoo 于 2008-8-18 01:26 发表
我的坛子就能远程图片保存啊
坛子不是有人发过了么


哪有?这么多人需要,有的话就放出来啊~
回复

使用道具 举报

poemsea 发表于 2008-8-19 15:32:18 | 显示全部楼层
需要!! 支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-20 07:26 , Processed in 0.028569 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表