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远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
jQuery 源码分析笔记
May 25 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 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连接数超过限制的解决方法
2011/07/17 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
python共享引用(多个变量引用)示例代码
2013/12/04 Python
python如何查看系统网络流量的信息
2016/09/12 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Python中生成ndarray实例讲解
2021/02/22 Python
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
元旦寄语大全
2014/04/10 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
车辆年审委托书范本
2014/09/18 职场文书
2015年副班长工作总结
2015/05/15 职场文书