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 动态多文件上传
Jan 18 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
怎么在Windows系统中搭建php环境
Aug 31 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
PHP中require和include路径问题详解
Dec 25 PHP
PHP答题类应用接口实例
Feb 09 PHP
yii2利用自带UploadedFile实现上传图片的示例
Feb 16 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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/11/19 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
smarty简单入门实例
2014/11/28 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
jquery ztree实现右键收藏功能
2017/11/20 jQuery
微信小程序实现换肤功能
2018/03/14 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
python并发编程之线程实例解析
2017/12/27 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
优秀会计求职信
2014/07/04 职场文书
大学生党性分析材料
2014/12/19 职场文书
关于远足的感想
2015/08/10 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
python实现进度条的多种实现
2021/04/29 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL