当前位置:
首页 > 建站技术应用 > dedecms > 技术分享:织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程

技术分享:织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程

我们知道七牛云存储是目前国内最大的文件开放云存储平台,利用七牛云存储我们可以将自己网站需要发布的图片或者附件都上传到七牛云存储,然后通过云存储连接提供给网站用户下载,这样就可以大大减轻网站服务器的文件存储以及下载压力,同时降低网站服务器的带宽成本。

而目前织梦dedecms与七牛云存储的集成整合教程还是空白,下面CMS资源网就教大家如何将七牛云存储与织梦CMS默认的编辑器完美整合,通过编辑器上传图片或者附件能够完美同步上传到七牛云服务器,并返回图片或附件的链接直接使用。下面我们就开始整合吧:

第一步、注册七牛账号、创建云空间并获取AccessKey和SecretKey:

首先我们注册并登录七牛云存储的账号,请点击下面的地址注册:

https://portal.qiniu.com/signup?code=3lca3aazlg8y9

注册成功后七牛会提示我们完成一些必要的身份认证,完成认证后就能创建自己的云存储空间了,点击七牛用户首页上面的新建空间,如下图:

技术分享:织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程

然后输入自己的空间名称,下面的空间类型选择“公开空间”,然后点击创建即可,如下图:

 

技术分享:织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程

创建完成后在空间设置里面打开域名设置页面,自己可以自定义域名,也可以使用默认的域名,将自定义或者默认的域名复制出来。如下图:

技术分享:织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程
点击导航最右边的“账号”,再点击左边的“密钥”菜单,将里面的AccessKey和SecretKey复制出来。如下图:

 

技术分享:织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程
这些数据都复制出来之后我们就可以开始进行下一步了。

第二步、集成七牛SDK

集成七牛SDK很简单,因为我们已经将SDK都是直接做好了,大家下载下面的SDK压缩包,将压缩包里面的qiniu文件夹解压出来,打开里面的conf.php文件,将刚刚复制的AccessKey和SecretKey分别填进去!

保存后将整个qiniu文件夹上传到织梦include目录下即可完成SDK的集成安装!

SDK压缩包下载地址:http://files.dedejs.com/files/soft/150807/qiniu-sdk.rar
集成七牛SDK之后就可以进行下一步了。

第三步、修改织梦CMS图片附件上传程序实现同步上传七牛云存储

织梦默认的编辑器有图片上传、多媒体文件上传以及附件上传,因为时间关系,我们仅以图片上传为例来讲解,多媒体以及附件的上传修改都是差不多的,大家自行修改即可。

首先打开/include/dialog/select_images.php文件,在里面找到如下代码:

1
1
1
$dh =
1
dir
1
($inpath);

在其下面添加下面这句代码:

1
1
1
$qiniudomain =
1
'七牛云存储域名'
1
;

注意:将里面的“七牛云存储域名”替换为刚刚第一步里面复制的域名。
然后在里面查找如下代码:

1
1
1
$reurl = $reurl;

全部替换为如下代码

1
1
1
$reurl = $qiniudomain.$reurl;

 

修改完成后再打开/include/dialog/select_images_post.php文件,在里面找到下面这句代码:

$info = '';

在其上面 添加如下代码:

1
//上传到七牛云存储start   by CMS资源网www.dedejs.com
1
require_once(
1
dirname
1
(__FILE__).
1
"/../qiniu/io.php"
1
);
1
require_once(
1
dirname
1
(__FILE__).
1
"/../qiniu/rs.php"
1
);
1
$qiniupath = substr($activepath,1);
1
$bucket =
1
'云空间名'
1
;
1
$qiniudomain =
1
'七牛云存储域名'
1
;
1
$key = $qiniupath.
1
"/"
1
.$filename;
1
$client = new Qiniu_MacHttpClient(null);
1
$putPolicy = new Qiniu_RS_PutPolicy(
1
"$bucket:$key"
1
);
1
$upToken = $putPolicy->Token(null);
1
$putExtra = new Qiniu_PutExtra();
1
$s =
1
time
1
();
1
list($ret, $err) = Qiniu_PutFile($upToken, $key, $fullfilename, $putExtra);
1
//上传到七牛云存储end

注意:将里面的“云空间名”修改为刚刚创建的空间名称,“七牛云存储域名”替换为刚刚第一步里面复制的域名。

然后在里面找到如下代码:

1
1
1
\
1
''
1
.$fileurl.'\'

将其修改为如下代码:

1
1
1
\
1
''
1
.$qiniudomain.$fileurl.'\'

修改完成后保存即可,再去后台用编辑器上传图片,就会发现返回的图片路径都是七牛云存储的图片路径了,这样就实现了完美的整合,利用同样的修改方法,大家可以自己修改一下select_media.php、select_soft.php以及select_soft_post.php文件,这样就能实现图片、多媒体以及附件上传全部同步到七牛云存储了。

最后需要注意的一个问题是我们需要在后台——系统——系统基本参数——其他选项  里面将“远程图片本地化”设置为否,不然我们用的七牛的路径就会全部转换为服务器本地文件。

原文地址:http://www.dedejs.com/html/article-944-1.html