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程序中防止盗链
Apr 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
PHP页面间传递参数实例代码
Jun 05 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
php反射类ReflectionClass用法分析
May 12 PHP
简述php环境搭建与配置
Dec 05 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 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
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
js运动应用实例解析
2015/12/28 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
查看python下OpenCV版本的方法
2018/08/03 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
中药学专业求职信
2014/05/31 职场文书
2015年护士节活动总结
2015/02/10 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
如何正确理解python装饰器
2021/06/15 Python