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 相关文章推荐
一个高ai的分页函数和一个url函数
Oct 09 PHP
PHP开发入门教程之面向对象
Dec 05 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
PHP时间和日期函数详解
May 08 PHP
codeigniter实现get分页的方法
Jul 10 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
python如何安装下载后的模块
2020/07/03 Python
如何利用python读取micaps文件详解
2020/10/18 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
毕业学生推荐信
2013/12/01 职场文书
工程业务员工作职责
2013/12/07 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
离婚被告代理词
2015/05/23 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python