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 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
php实现文件编码批量转换
Mar 10 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHP实现的简单异常处理类示例
May 04 PHP
PHP命名空间简单用法示例
Dec 28 PHP
php实例化一个类的具体方法
Sep 19 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 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
我的群发邮件程序
2006/10/09 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
php array_map()函数实例用法
2021/03/03 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
jQuery功能函数详解
2015/02/01 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
python概率计算器实例分析
2015/03/25 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python实现弹窗祝福效果
2019/04/07 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Python安装whl文件过程图解
2020/02/18 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
Ibatis的核心配置文件都有什么
2014/09/08 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
跑吧孩子观后感
2015/06/10 职场文书
永远是春天观后感
2015/06/12 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers