tp6改写了文件上传的方式,变得更加简洁。但上传阿里云oss的方法没变,只需改变一下上传的流程即可,下面上代码。
一、安装阿里云sdk
composer require aliyuncs/oss-sdk-php
这里安装完之后可以去框架根目录中的composer.json中看一下安装的哪个版本的sdk,我这里是
二、在公共方法中写入上传方法
<?php
use OSS\OssClient;
use OSS\Core\OssException;
//阿里云OSS
if (!function_exists('aliyun')) {
function aliyun($savePath,$category='',$isunlink=false,$bucket=""){
$accessKeyId = Config::get('app.aliyun_oss.accessKeyId');//去阿里云后台获取秘钥
$accessKeySecret = Config::get('app.aliyun_oss.accessKeySecret');//去阿里云后台获取秘钥
$endpoint = Config::get('app.aliyun_oss.endpoint');//你的阿里云OSS地址
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 判断bucketname是否存在,不存在就去创建
if( !$ossClient->doesBucketExist($bucket)){
$ossClient->createBucket($bucket);
}
$category=empty($category)?$bucket:$category;
$savePath = str_replace("\\","/",$savePath);
$object = $category.'/'.$savePath;//想要保存文件的名称
$file = './upload\\'.$savePath;//文件路径,必须是本地的。
try{
$ossClient->uploadFile($bucket,$object,$file);
if ($isunlink==true){
unlink($file);
}
}catch (OssException $e){
$e->getErrorMessage();
}
$oss=Config::get('aliyun_oss.url');
$web = "http://gzs123.oss-cn-shanghai.aliyuncs.com";//这里是你阿里云oss外网访问的Bucket域名
return $web.$oss."/".$object;
}
}
三、在config app中配置阿里云参数
//阿里云配置
'aliyun_oss' => [
'accessKeyId' => '', //您的Access Key ID
'accessKeySecret' => '', //您的Access Key Secret
'endpoint' => 'oss-cn-shanghai.aliyuncs.com', //阿里云oss 外网地址endpoint
'bucket' => '', //Bucket名称
'url' => '' // 访问的地址 (可不配置)
]
四、封装tp6的文件上传方法 并上传oss
<?php
use think\facade\Filesystem;
if (!function_exists('uplodeOss')) {
function uplodeOss($file){
$path = Filesystem::disk('public')->putFile('upload', $file);
//图片路径,Filesystem::getDiskConfig('public','url')功能是获取public目录下的storage,
$ossPath = substr(strrchr($path, "/"), 1);
//结果是 $picCover = storage/upload/20200825/***.jpg
$picCover = '/' . str_replace('\\', '/', $path);//图片上传到本地的路径
//上传OSS 并获取阿里云OSS地址
$image = aliyun($ossPath, '', '', 'gzs123');//第一个参数为图片地址 最后一个为bucket名字 具体参数在上个方法中
if($image){
return $image;
}
}
}
五、总结
上传oss的方法没变,主要是文件上传方法的改动。
如果对你有帮助的话 请点赞、关注加转发,您的支持就是我进步的最大动力!感谢阅读!