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 相关文章推荐
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
IP138 IP地址查询小偷实现代码
Feb 15 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
解析php5配置使用pdo
Jul 03 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
php 函数使用可变数量的参数方法
May 02 PHP
PHP attributes()函数讲解
Feb 03 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
如何将数据从文本导入到mysql
2006/10/09 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
定义select的边框颜色
2008/04/28 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
Move.js入门
2017/02/08 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
shiro授权的实现原理
2017/09/21 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python地震数据可视化详解
2019/06/18 Python
手写一个python迭代器过程详解
2019/08/27 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
秋季运动会演讲稿
2014/09/16 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
实习介绍信模板
2015/01/30 职场文书
安全保证书格式
2015/02/28 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
无保留意见审计报告
2015/06/05 职场文书
放飞理想主题班会
2015/08/14 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
Python中递归以及递归遍历目录详解
2021/10/24 Python
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL