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 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
PHP学习之正则表达式
Apr 17 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
在Linux系统下一键重新安装WordPress的脚本示例
Jun 30 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
PHP程序员学习使用Swoole的理由
Jun 24 PHP
PHP字符串和十六进制如何实现互相转换
Jul 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数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
js使用highlight.js高亮你的代码
2017/08/18 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
python快速排序代码实例
2013/11/21 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
对python中的pop函数和append函数详解
2018/05/04 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
什么是Smart Navigation?
2016/07/03 面试题
小学学雷锋活动总结
2014/04/25 职场文书
课外活动总结范文
2014/07/09 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
pytorch--之halfTensor的使用详解
2021/05/24 Python