thinkphp项目接入阿里云OSS

hykeda3年前ThinkPHP2979

1、首先安装 sdk:

composer require aliyuncs/oss-sdk-php

安装好后,在控制器中创建上传方法:

protected function uploadImages(){
       $format = strrchr($filesPath, '.');//截取文件后缀名如 (.jpg)    $filesPath上传到本地服务器的地址
       // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
       $accessKeyId      = config('app.aliyun.accessId');
       $accessKeySecret  = config('app.aliyun.accessSecret');
       // Endpoint以杭州为例,其它Region请按实际情况填写。
       $endpoint         = config('app.aliyun.endpoint');
       // 设置存储空间名称。
       $bucket= config('app.aliyun.bucket');
       // 设置文件名称。
       $path = '2023/upload/'; //oss中的目录地址      bucket下面会有  2023/upload/2023-2-1/1253251sdfs.jpg
       $object = $path.date('Ymd', time()).DIRECTORY_SEPARATOR.sha1(date('YmdHis', time()) . uniqid()) . $format;
       //自己本地服务器中的图片或视频地址
       $filePath = $filesPath;
       try{
           $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
           $result = $ossClient->uploadFile($bucket, $object, $filePath);
           if(!$result){
               return ['code'=>400,'msg'=>'上传失败'];
           }else{
               unlink($filesPath); //删除本地文件

               $arrtxt = explode('-',$bucket);
               $item = '//'.$arrtxt[1].'-oss.XXXXX.com/'.$object;
               return ['code'=>200,'msg'=>$item];

               //return ['code'=>200,'msg'=>$result['info']['url']];
           }
       } catch(OssException $e) {
//            printf(__FUNCTION__ . ": FAILED\n");
//            printf($e->getMessage() . "\n");
           return ['code'=>400,'msg'=>$e->getMessage()];
       }
   }


标签: OSS

相关文章

Thinkphp5 创建模块

一、创建三个模块 Common(公共模块),Index(前台模块),Admin(后台模块)。 index.php实际配置 <?php // 定义应用目录 define('APP_...

在thinkphp6中使用依赖注入或容器来创建对象

很多时候,在自己的控制器中需要调用另一个控制器中的方法,但是没有直接的继承关系,比如两个控制器同时继承了一个common类。如果我们直接new一个控制器中的类,就会提示Too few&nbs...

thinkphp6 中间件使用笔记

最近开发三频道打通程序时用到了中间件,现总结一下:第一步:首先用命令行生成中间件php think make:middleware Check这个指令会 app...

关于thinkphp5.1钩子和行为的个人理解和使用

关于thinkphp5.1钩子和行为的个人理解和使用

thinkphp5中的钩子和行为属于AOP编程思想,类似于AOP编程中的“切面”的概念,简单理解就是一个切入点,可以大大增加程序的耦合性。如何使用钩子和行为来开发:首先在项目中创建一个行为文件夹:1、...

在thinkphp6.1.1中composer安装 liliuwei/thinkphp-jump报错

报错内容:Problem 1     - Root composer.json requires liliu...

phpqrcode防止输出乱码 thinkphp

/** * 封装生成二维码函数 * */ function getQrcode($url){ /*生成二维码*/ vendor("phpqrcod...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。