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和ACCESS写聊天室(七)
Oct 09 PHP
PHP 选项及相关信息函数库
Dec 04 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
php设置session值和cookies的学习示例
Mar 21 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
php获取当前页面完整URL地址
Dec 30 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 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无限级分类方法及代码
2013/06/21 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Spy++的使用方法及下载教程
2021/01/29 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
团日活动总结
2014/04/28 职场文书
食品安全演讲稿
2014/09/01 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
法律讲堂观后感
2015/06/11 职场文书