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的知识
Nov 17 PHP
php 目录遍历、删除 函数的使用介绍
Apr 28 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
Feb 05 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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制作静态网站的模板框架
2006/10/09 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
PHP扩展开发入门教程
2015/02/26 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
2016/08/16 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
Move.js入门
2017/02/08 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
python使用xslt提取网页数据的方法
2018/02/23 Python
python实现linux下抓包并存库功能
2018/07/18 Python
pytorch打印网络结构的实例
2019/08/19 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python如何建立全零数组
2020/07/19 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
Django中ORM的基本使用教程
2020/12/22 Python
python实现学生通讯录管理系统
2021/02/25 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
教师推荐信范文
2013/11/24 职场文书
高一学生期末评语
2014/04/25 职场文书
2015年护士节慰问信
2015/03/23 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
导游词之青岛崂山
2019/12/27 职场文书
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js