yii2.0整合阿里云oss的示例代码


Posted in PHP onSeptember 19, 2017

主要思路,首先用composer下载阿里云oss的php sdk,然后自定义一个组件,就能够在全局调用阿里云oss了。

具体步骤如下:

1 到阿里云官网找到php sdk,网址为https://help.aliyun.com/document_detail/32099.html?spm=5176.87240.400427.40.s8EbEH

2 使用composer安装,在项目目录下(basic/)输入:

composer require aliyuncs/oss-sdk-php

安装完成以后,如下图

yii2.0整合阿里云oss的示例代码

3 自定义组件:

3.1 在basic目录下,创建components文件夹,

3.2 在components目录下创建Aliyunoss.php

代码参考如下:

<?php
namespace app\components;

use Yii;
use yii\base\Component;
use OSS\OssClient;

class Aliyunoss extends Component
{
  public static $oss;

  public function __construct()
  {
    parent::__construct();
    $accessKeyId = Yii::$app->params['oss']['accessKeyId'];         //获取阿里云oss的accessKeyId
    $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];     //获取阿里云oss的accessKeySecret
    $endpoint = Yii::$app->params['oss']['endPoint'];            //获取阿里云oss的endPoint
    self::$oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //实例化OssClient对象
  }

  /**
   * 使用阿里云oss上传文件
   * @param $object  保存到阿里云oss的文件名
   * @param $filepath 文件在本地的绝对路径
   * @return bool   上传是否成功
   */
  public function upload($object, $filepath)
  {
    $res = false;
    $bucket = Yii::$app->params['oss']['bucket'];        //获取阿里云oss的bucket
    if (self::$oss->uploadFile($bucket, $object, $filepath)) { //调用uploadFile方法把服务器文件上传到阿里云oss
      $res = true;
    }

    return $res;
  }

  /**
   * 删除指定文件
   * @param $object 被删除的文件名
   * @return bool  删除是否成功
   */
  public function delete($object)
  {
    $res = false;
    $bucket = Yii::$app->params['oss']['bucket'];  //获取阿里云oss的bucket
    if (self::$oss->deleteObject($bucket, $object)){ //调用deleteObject方法把服务器文件上传到阿里云oss
      $res = true;
    }

    return $res;
  }

  public function test(){
    echo 123;
    echo "success";
  }
}
?>

3.3 在basic/config/params.php里边添加一个数组,用来放置阿里云oss的配置信息

代码参考如下:

'oss' =>[
    'accessKeyId'=>'您的accessKeyId',
    'accessKeySecret'=>'您的accessKeySecret',
    'bucket' => '您的bucket',
    'endPoint' => '您的endPoint',
  ]

3.4 在basic/config/main.php里边添加一个组件配置

'Aliyunoss' => [
  'class' => 'app\components\Aliyunoss',
],

3.5 在controller里边尝试调用

Yii::$app->Aliyunoss->test();

3.6 调用成功截图:

yii2.0整合阿里云oss的示例代码

至此,已经成功地把阿里云oss引入到了yii2框架之中。调用upload方法和调用delete方法跟示例相同。你也可以根据OssClient里边的方法为Aliyunoss组件增加新的功能。一般来说,使用上传和删除功能就已经能满足大部分需求了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
我常用的几个类
Oct 09 PHP
PHP4实际应用经验篇(4)
Oct 09 PHP
15种PHP Encoder的比较
Apr 17 PHP
10条PHP编程习惯助你找工作
Sep 29 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
如何在HTML 中嵌入 PHP 代码
May 13 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
PHP文件系统管理(实例讲解)
Sep 19 #PHP
Laravel学习教程之View模块详解
Sep 18 #PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 #PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 #PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 #PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 #PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 #PHP
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
基于jquery循环map功能的代码
2011/02/26 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
python 域名分析工具实现代码
2009/07/15 Python
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
Python标准库sched模块使用指南
2017/07/06 Python
在pycharm中实现删除bookmark
2020/02/14 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
Python中有几个关键字
2020/06/04 Python
python的json包位置及用法总结
2020/06/21 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
教学实验楼管理制度
2014/02/01 职场文书
美术指导助理求职信
2014/04/20 职场文书
2014年学生会工作总结
2014/11/07 职场文书
公务员年终个人总结
2015/02/12 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android