该教程算不上是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. 关于jquery 集合对象的 each和click方法的 思考 -$(this)的认识

    1, 很重要的是: each: 是 自动遍历 集合中所有 item的, 是自动的; click: 包括其他所有的 "事件", 如mouseX事件, keyX事件等, 都不是 自动 ...

  2. ActiveMQ 即时通讯服务 浅析

      一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...

  3. AJAX 与 MySQL

    AJAX 与 MySQL AJAX 可用来与数据库进行交互式通信. AJAX 数据库实例 下面的实例将演示网页如何通过 AJAX 从数据库读取信息: 实例   Select a person:   P ...

  4. JS实现图片预加载无需等待

    网站开发时经常需要在某个页面需要实现对大量图片的浏览;用javascript来实现一个图片浏览器,让用户无需等待过长的时间就能看到其他图片 网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考 ...

  5. PHP HTML代码反转义

    后端为了防止xss的攻击,会过滤前端用户的输入的数据,这样虽然有效的避免xss攻击,但是会带来一个问题,要么全部过滤html留下不非法的数据,要么把HTML代码转义,但是转义之后又会直接在浏览器内显示 ...

  6. python之路三

    集合 set拥有类似dict的特点:可以用{}花括号来定义:其中的元素没有序列,也就是是非序列类型的数据;而且,set中的元素不可重复,这就类似dict的键. set也有继承了一点list的特点:如可 ...

  7. Linq查询表达式

    目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...

  8. NSString相关操作

    //创建一个字符串对象 NSString * str_1 = @"Hello"; //字面量方法 ; NSString * str_2 = [NSString stringWith ...

  9. Odoo9是如何计算预定交付日期的

    计算预定日期目的是按计划交付.接收等.根据不同公司习惯,Odoo会通过调度器自动生成预定日期,Odoo调度器计算每一行的每件事情,无论是生产订单.交货单.销售订单等,依据Odoo中配置的不同交付时间( ...

  10. iOS 图片选择器 总结

    UIImagePickerController #pragma mark 从用户相册获取活动图片 - (void)pickImageFromAlbum{ imagePicker = [[UIImage ...