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 相关文章推荐
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
php防止sql注入代码实例
Dec 18 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
PHP发送短信代码分享
Aug 11 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
PHP中Http协议post请求参数
Nov 02 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
php实现大文件断点续传下载实例代码
Oct 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使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
解析Python编程中的包结构
2015/10/25 Python
python django事务transaction源码分析详解
2017/03/17 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
英国网上购买门:Direct Doors
2018/06/07 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
应届大专毕业生个人自荐信
2013/09/22 职场文书
毕业生找工作的求职信范文
2013/12/24 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
数学教育专业求职信
2014/07/22 职场文书
单位在职证明书
2014/09/11 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
计划生育工作总结2015
2015/04/03 职场文书
简单的辞职信模板
2015/05/12 职场文书