TP6 TP8 使用阿里官方OSS SDK方法
安装
composer require aliyuncs/oss-sdk-php
官网:GitHub - aliyun/aliyun-oss-php-sdk: Aliyun OSS SDK for PHP
二、PHP简单上传
官网教程:如何进行字符串上传和文件上传_对象存储 OSS-阿里云帮助中心
引入
use OSS\OssClient;
use OSS\Core\OssException;
上传代码
public function putFile($path,array $postArr=[]){$code=200;$msg='成功';$saveName='';// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。$accessKeyId = env('OSS_ALIYUN.ALIYUN_ACCESSID');$accessKeySecret = env("OSS_ALIYUN.ALIYUN_ACCESSSECRET");// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint =env("OSS_ALIYUN.ALIYUN_ENDPOINT");// 填写Bucket名称,例如examplebucket。$bucket= env("OSS_ALIYUN.ALIYUN_BUCKET");$file = request()->file('file');// <yourObjectName>表示上传文件到OSS时需要指定包含文件后缀,不包含Bucket名称在内的完整路径,例如abc/efg/123.jpg。$filePath = file_get_contents($file);//上传文件// $fileName = $file->getOriginalName();//getOriginalName()方法获取上传文件的原名称$ext = $file->getOriginalExtension();$saveName = $path.'/'.date('Y-m-d').'/'.md5($file->getOriginalName().date('Y-m-d H:i:s').rand(00000,99999)).'.'.$ext;//重名称文件try {$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);$ossData = $ossClient->putObject($bucket, $saveName, $filePath);} catch (OssException $e) {$code=-200;$msg=$e->getMessage();}return ['code' => $code,'msg' => $msg,'path'=>$saveName];}
参考:
thinkphp6 swoole上传阿里云oss_小时候很帅y的博客-CSDN博客
thinkphp 6 上传 自动区分本地、阿里云等OSS 服务_php肖彬的博客-CSDN博客