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 获取当前访问的url文件名的方法小结
Feb 08 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP session 会话处理函数
Jun 06 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
php生成HTML文件的类方法
Oct 11 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生成酷炫的四个字符验证码
2016/04/22 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
pycharm远程调试openstack代码
2017/11/21 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python 必须了解的5种高级特征
2020/09/10 Python
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
十佳护士获奖感言
2014/02/18 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
社团个人总结范文
2015/03/05 职场文书
小英雄雨来观后感
2015/06/09 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
用Python可视化新冠疫情数据
2022/01/18 Python
部分武汉产收音机展览
2022/04/07 无线电
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS