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文件
Jan 04 PHP
比较详细PHP生成静态页面教程
Jan 10 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
php 魔术方法详解
Nov 11 PHP
php 删除cookie方法详解
Dec 01 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 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
thinkphp模板用法和内容输出实例
2014/11/28 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
JavaScript中的高级函数
2018/01/04 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
python中的unittest框架实例详解
2021/02/05 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
医学检验专业个人求职信范文
2013/12/04 职场文书
银行办公室岗位职责
2014/03/10 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
农村改厕实施方案
2014/03/22 职场文书
简单租房协议书
2014/04/09 职场文书
企业文化演讲稿
2014/05/20 职场文书
品质口号大全
2014/06/17 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技