该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份。还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:
1、个人的需求是前台页面需要使用thumb函数生成多个缩略图大小,thumb函数是不支持远程图片的(保存在OSS上就变远程图片了),即使修改为支持远程图片,也需要将远程图片先保存到本地,这样速度会非常慢,是非常非常;
2、做备份的需要,这点你懂得,某天OSS上的附件没有了就悲剧了,所以使用这个OSS for phpcmsV9需要服务器有一定的空间。

3、当然你也可以修改该phpcmsv9 oss插件,云存储上传成功后,可删除本地文件。

下面是阿里云oss phpcmsv9整合教程:

1、下载OSS的SDK,下载地址
http://dev.aliyun.com/article/detail?spm=0.0.0.62.q5af2S&article_id=45

2、解压SDK压缩包,打开conf.inc.php,修改Access Key ID和Access Key Secret为自己的,如何获取API 密钥(Access ID & Access Key )

3、将SDK包中的以下文件放入对应模块下。

4、打开phpcms\modules\admin\templates\setting.tpl.php 搜索

<td class="y-bg"><input type="text" class="input-text" name="setconfig[upload_url]" id="upload_url" size="50" value="<?php echo $upload_url?>" /></td>

在下方添加

<!--阿里云OSS配置 S-->
<tr>
<th width="120"><?php echo L('setting_oss_enable')?></th>
<td class="y-bg">
<input name="setconfig[oss_enable]" value="1" type="radio" <?php echo ($oss_enable=='1') ? ' checked' : ''?>> <?php echo L('setting_yes')?>
<input name="setconfig[oss_enable]" value="0" type="radio" <?php echo ($oss_enable=='0') ? ' checked' : ''?>> <?php echo L('setting_no')?></td>
</tr>
<tr>
<th width="120"><?php echo L('setting_oss_id')?></th>
<td class="y-bg">
<input type="text" class="input-text" name="setconfig[oss_id]" id="oss_id" size="50" value="<?php echo $oss_id?>" />
<div class="onShow">还没有?<a href="http://help.aliyun.com/manual?spm=0.0.0.111.8BPOua&helpId=786" target="_blank">到这里获取API 密钥</a></div>
</td>
</tr>
<tr>
<th width="120"><?php echo L('setting_oss_secret')?></th>
<td class="y-bg"><input type="password" class="input-text" name="setconfig[oss_secret]" id="oss_secret" size="50" value="<?php echo $oss_secret?>" /></td>
</tr>
<tr>
<th width="120"><?php echo L('setting_oss_bucket')?></th>
<td class="y-bg"><input type="text" class="input-text" name="setconfig[oss_bucket]" id="oss_bucket" size="50" value="<?php echo $oss_bucket?>" /></td>
</tr>
<tr>
<th width="120"><?php echo L('setting_oss_path')?></th>
<td class="y-bg"><input type="text" class="input-text" name="setconfig[oss_path]" id="oss_path" size="50" value="<?php echo $oss_path?>" /></td>
</tr>
<tr>
<th width="120"><?php echo L('setting_oss_upload_url')?></th>
<td class="y-bg"><input type="text" class="input-text" name="setconfig[oss_upload_url]" id="oss_upload_url" size="50" value="<?php echo $oss_upload_url?>" /></td>
</tr>
<!--阿里云OSS配置 E-->

打开phpcms\languages\zh-cn\admin.lang.php

在结束前加入

$LANG['setting_oss_enable'] = '启用阿里云存储';
$LANG['setting_oss_id'] = 'Access Key ID';
$LANG['setting_oss_secret'] = 'Access Key Secret';
$LANG['setting_oss_bucket'] = 'Bucket名称';
$LANG['setting_oss_path'] = 'OSS上的图片目录';
$LANG['setting_oss_upload_url'] = '访问路径';

打开phpcms\modules\admin\setting.php,
搜索

$setting['errorlog_size'] = trim($_POST['setting']['errorlog_size']);

在下方添加

//阿里云云存储配置
$setting['oss_enable'] = intval($_POST['setconfig']['oss_enable']);
$setting['oss_id'] = trim($_POST['setconfig']['oss_id']);
$setting['oss_secret'] = $_POST['setconfig']['oss_secret'];
$setting['oss_bucket'] = trim($_POST['setconfig']['oss_bucket']);
$setting['oss_path'] = trim($_POST['setconfig']['oss_path']);
$setting['oss_upload_url'] = trim($_POST['setconfig']['oss_upload_url']);

打开phpcms\modules\attachment\attachments.php
搜索

$this->groupid = param::get_cookie('_groupid') ? param::get_cookie('_groupid') : 8;

在下方加入

$this->oss = getcache('common','commons');        //载入云存储配置的缓存

再搜索

echo $aids[0].','.$this->upload_url.$attachment->uploadedfiles[0]['filepath'].','.$attachment->uploadedfiles[0]['isimage'].','.$filename;

替换为

if($this->oss['oss_enable']){        //图片云存储
echo $aids[0].','.$this->oss['oss_upload_url'].$attachment->uploadedfiles[0]['filepath'].','.$attachment->uploadedfiles[0]['isimage'].','.$filename;
}else{
echo $aids[0].','.$this->upload_url.$attachment->uploadedfiles[0]['filepath'].','.$attachment->uploadedfiles[0]['isimage'].','.$filename;
}

打开phpcms\libs\classes\attachment.class.php

搜索

var $site = array();

在下方加入

var $oss;        //云存储

再搜索

$this->upload_dir = $upload_dir;

在下方加入

$this->oss = getcache('common','commons');        //载入云存储配置的缓存

再搜索

if($watermark_enable) {
$image->watermark($savefile, $savefile);
}

在下方加入

if($this->oss['oss_enable']){        //图片云存储
pc_base::load_app_class('sdk', '' ,0); //载入OSS类
$oss_sdk_service = new ALIOSS();
$oss_sdk_service->set_debug_mode(FALSE); //设置是否打开curl调试模式
$oss_sdk_service->upload_file_by_file($this->oss['oss_bucket'],$this->oss['oss_path'].$filepath,$this->upload_root.$filepath);
}

再搜索

if($thumbs) foreach($thumbs as $thumb) @unlink($thumb);

在下方加入

 //删除OSS上的图
if($this->oss['oss_enable']){ //图片云存储
pc_base::load_app_class('sdk', 'attachment' ,0); //载入OSS类
$oss_sdk_service = new ALIOSS();
$oss_sdk_service->set_debug_mode(FALSE); //设置是否打开curl调试模式
$oss_sdk_service->delete_object($this->oss['oss_bucket'],$this->oss['oss_path'].$r['filepath']);
}

5、后台设置(设置 > 相关设置 > 基本设置),对照以下图片
phpcms和uploadfile这个两个都需要手工创建
OSS上的设置
6、最后一点就是将相关模型字段中的editor修改为不保存远程图片:

更新缓存!

  

  

本人转自:http://bbs.phpcms.cn/thread-758240-1-1.html 

技术支持:小孟网络工作室

phpcmsv9 阿里云OSS云存储整合教程的更多相关文章

  1. SpringBoot整合阿里云OSS对象存储实现文件上传

    1. 准备工作: 一.首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间. 二.创建Access Keyan按要求创建进行,这里的方法步骤我就不展现出来了,你们可以自行查询阿里云文 ...

  2. iOS使用阿里云OSS对象存储 (SDK 2.1.1)

    最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所 ...

  3. 阿里云OSS的 存储包、下行流量包、回流流量包 三者有啥关系

    阿里云OSS的 存储包.下行流量包.回流流量包 三者有啥关系 一.总结 一句话总结: 你把文件放 oss,会占用存储空间,存储包覆盖这部分费用 你访问存储在 oss 里面的文件,会产生下行流量,就是从 ...

  4. Java使用阿里云OSS对象存储上传图片

    原 Java使用阿里云OSS对象存储上传图片 2017年03月27日 10:47:28 陌上桑花开花 阅读数 26804更多 分类专栏: 工作案例总结 版权声明:本文为博主原创文章,遵循CC 4.0 ...

  5. 阿里云Oss对象存储

    将文件保存到阿里云上. 1.添加对象存储OSS空间 (新建Bucket) 可以在阿里云后台对象存储里面添加,也可以通过api添加.添加之后设置权限. skd使用. 1安装 Aliyun.OSS.SDK ...

  6. .Net程序测试阿里云OSS开放存储服务

    阿里云官网有提供OSS相关的操作API文档和.Net程序的 SDK,也可以在这里下载OSS相关文件 但是API文档里面的都是通过http请求和响应的消息来描述如何操作OSS的 而一般在程序中需要的是O ...

  7. C# .net Ueditor实现图片上传到阿里云OSS 对象存储

    在学习的时候,项目中需要实现在Ueditor编辑器中将图片上传到云储存中,老师演示的是上传到又拍云存储,既然看了一遍,直接照搬不算本事,咱们可以依葫芦画瓢自己来动手玩玩其它的云存储服务. 现在云计算产 ...

  8. PHP 上传文件至阿里云OSS对象存储

    简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...

  9. 阿里云OSS对象存储 简单上传文件

    不得不说阿里云的命名比较让人摸不着头脑,开始以为是文件存储NAS,弄了半天什么文件系统,挂载点的搞不明白.后来才搞清楚原来 对象存储OSS才是我需要的. 其中EndPoint就是画红框的部分,但是要加 ...

随机推荐

  1. css之图片路径

    关于背景图片url路径:图片和调用文件在两个不同根下的(不在同一个包(文件夹)中),要用相对路径,举例"../images/cq.gif":图片和调用文件是在一个根下的直接孩子,用 ...

  2. PHP cookie

    PHP Cookie cookie 常用于识别用户. Cookie 是什么? cookie 常用于识别用户.cookie 是一种服务器留在用户计算机上的小文件.每当同一台计算机通过浏览器请求页面时,这 ...

  3. C和指针 第六章 习题

    6.1编写一个函数,它在一个字符串中进行搜索,查找所有在一个给定字符集中出现的字符,返回第一个找到的字符位置指针,未找到返回NULL #include <stdio.h> char * f ...

  4. embed标签loop=true背景音乐无法循环

    在html网页中加入背景音乐并设置为循环播放.一开始用<embed>标签,设置loop="true", 但是结果发现在IE浏览器可以,但是在chrome浏览器却无法实现 ...

  5. EF框架的三种工作方式

    EF框架step by step(1)—Database-First EF框架step by step(2)—Model-First EF框架step by step(3)—Code-First 通过 ...

  6. 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码

    Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中 ...

  7. ffmpeg-20160828-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...

  8. android so调试时遇到的坑 - arm流水线

    直接看下面这段ARM汇编: 此时运行到的代码为ADD R3,PC 此时看一下寄存器窗口的值: 按理来说执行完ADD R3,PC后的效果应该是R3=R3+PC ,R3=40A1D5C8 但是我们可以执行 ...

  9. 这交互炸了:饿了么是怎么让Image变成详情页的

    这交互炸了:饿了么是怎么让Image变成详情页的 晚上叫外卖,打开饿了么,发现推了一个版本,更新以后,点开了个鸡腿,哇,交互炫炸了. 本文同步自wing的地方酒馆 不过还是有槽点.我是无意中才发现可以 ...

  10. js脚本语言

    alert(): 输出 字符串 转成整数 parseint(字符串):运算符与表达式% 取余 aler(10%2)余0 逻辑运算符&&并 ||或 !非 判断条件比较运算符== 等于 ! ...