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 相关文章推荐
用PHP调用Oracle存储过程
Oct 09 PHP
PHP提取中文首字母
Apr 09 PHP
PHP 多进程 解决难题
Jun 22 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
laravel配置Redis多个库的实现方法
Apr 10 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 PHP
详解PHP设计模式之依赖注入模式
May 25 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
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
js 异步处理进度条
2010/04/01 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
python引用DLL文件的方法
2015/05/11 Python
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python实现各种插值法(数值分析)
2019/07/30 Python
python中列表的含义及用法
2020/05/26 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
几个常见的消息中间件(MOM)
2014/01/08 面试题
安全资金保障制度
2014/01/23 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
小学教师评语大全
2014/04/23 职场文书
养成教育经验材料
2014/05/26 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
开会通知短信大全
2015/04/20 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
运动会广播稿200字
2015/08/19 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
Python之matplotlib绘制饼图
2022/04/13 Python