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中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php购物车实现代码
Oct 10 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
百度实时推送api接口应用示例
Oct 21 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
PHP开发中AJAX技术的简单应用
Dec 11 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
php实现评论回复删除功能
May 23 PHP
PHP程序守护进程化实现方法详解
Jul 16 PHP
php7中停止php-fpm服务的方法详解
May 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
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python3字符串学习教程
2015/08/20 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
使用Python来开发微信功能
2018/06/13 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Python3实现飞机大战游戏
2020/04/24 Python
用python绘制樱花树
2020/10/09 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
国培计划培训感言
2014/03/11 职场文书
争先创优演讲稿
2014/09/15 职场文书
2015年加油站工作总结
2015/05/13 职场文书
致运动员赞词
2015/07/22 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL