thinkphp项目接入阿里云OSS

hykeda3年前ThinkPHP2565

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

相关文章

最新阿里云OSS文件上传部署

1、前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-php-sdk/releases。 这里介绍源码部署:Source code下载下来...

记录thinkphp3.13移植到php7过程

随着php7的兴起,越来越多的公司用php7了,下面记录一次thinkphp3.1.3项目移植到php7解决兼容性的过程。 先在thinkphp...

ThinkPHP6 事件的简单应用

ThinkPHP6 事件的简单应用

一、序章ThinkPHP6的手册中关于【事件】章节的介绍都是直接文字说明,给出创建的类文件,并没有一个好的示例来进行补充说明。对于刚接触【事件】的同学在阅读理解上增加了一点点困难,本文就在此结合示例简...

thinkphp5.1 使用第三方类库放置在extend文件夹

thinkphp5.1 使用第三方类库放置在extend文件夹

thinkphp5.1 开发扩展类库时,命名空间必须要命名成文件夹的名字,不然无法访问到:...

发表评论    

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