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中的curl使用入门教程和常见用法实例
Apr 10 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
php页面缓存方法小结
Jan 10 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
php提交表单时保留多个空格及换行的文本样式的方法
Jun 20 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
Laravel Reponse响应客户端示例详解
Sep 03 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
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
js实现登录与注册界面
2017/11/01 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
Python类的继承和多态代码详解
2017/12/27 Python
Python3远程监控程序的实现方法
2019/07/15 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
幼儿园园长岗位职责
2013/11/26 职场文书
寄语是什么意思
2014/04/10 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
2014年物流工作总结
2014/11/25 职场文书
2014年英语教师工作总结
2014/12/03 职场文书