安装
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];
}