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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
缓存技术详谈―php
Dec 14 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
php生成zip文件类实例
Apr 07 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
php接口实现拖拽排序功能
Apr 23 PHP
PHP工厂模式的日常使用
Mar 20 PHP
php和html的区别点详细总结
Sep 24 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 变量定义和变量替换的方法
2009/07/30 PHP
php 团购折扣计算公式
2011/11/24 PHP
使用PHP编写发红包程序
2015/07/22 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
深入分析PHP设计模式
2020/06/15 PHP
json跟xml的对比分析
2008/06/10 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
AngularJS快速入门
2015/04/02 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
jQuery的框架介绍
2016/05/11 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
在Python中使用成员运算符的示例
2015/05/13 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python实现简单多人聊天室
2018/12/11 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
家居饰品店创业计划书
2014/01/31 职场文书
经典公益广告词
2014/03/13 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
民事辩护词范文
2015/05/21 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android