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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
phpstudy的php版本自由修改的方法
Oct 18 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 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的博客ping服务代码
2012/02/04 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
python随机生成指定长度密码的方法
2015/04/04 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python找出9个连续的空闲端口
2016/02/01 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
让生命充满爱观后感
2015/06/08 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
KVM基础命令详解
2022/04/30 Servers