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 相关文章推荐
hessian 在PHP中的使用介绍
Dec 13 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
Jul 12 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
PHP Error与Logging函数的深入理解
Jun 03 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php实现递归与无限分类的方法
Feb 16 PHP
初识laravel5
Mar 02 PHP
php发送邮件的问题详解
Jun 22 PHP
mac os快速切换多个PHP版本的方法
Mar 07 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
laravel批量生成假数据的方法
Oct 09 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
更改localhost为其他名字的方法
2014/02/10 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
javascript实现简单搜索功能
2020/03/26 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python内置函数delattr的具体用法
2017/11/23 Python
python绘制简单折线图代码示例
2017/12/19 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Python学习之os模块及用法
2020/06/03 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
基督教婚礼主持词
2014/03/14 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
班级年度安全计划书
2014/05/01 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
经营管理策划方案
2014/05/22 职场文书
社区班子对照检查材料
2014/08/27 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
会计岗位职责
2015/02/03 职场文书
vue打包时去掉所有的console.log
2022/04/10 Vue.js
python中filter,map,reduce的作用
2022/06/10 Python