TP框架上传图片至阿里云oss
首先安装阿里云oss扩展:
composer require aliyuncs/oss-sdk-php
如果这个安装不上可以直接下载SDK的包:
链接:https://pan.baidu.com/s/1QD0O2e55CHylGQjoWHXEJQ 提取码:q4m6
下载解压后重命名为aliyun-oss放到extend目录下然后
在你的config文件中加入以下配置:
return [ 'KeyId' => '', //Access Key ID 'KeySecret' => '', //Access Key Secret 'Endpoint' => '', //阿里云oss 外网地址endpoint 'Bucket' => '', //Bucket名称 ];
接下来就是上传的方法了:记得在控制器中引用哦:
use OSS\OssClient; use OSS\Core\OssException;
上代码:
public function uploadFile() { $file= request()->file('icon'); $resResult = Image::open($file); $type = $resResult->type(); // 尝试执行 try { $accessKeyId = config('aliyun_oss.accessKeyId');//去阿里云后台获取秘钥 $accessKeySecret = config('aliyun_oss.accessKeySecret');//去阿里云后台获取秘钥 $endpoint = config('aliyun_oss.endpoint');//你的阿里云OSS地址 $bucket = config('aliyun_oss.bucket');//你的阿里云OSS地址 //实例化对象 将配置传入 $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //这里是有sha1加密 生成文件名 之后连接上后缀 $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $type; //上传至阿里云的目录 为年+月/日的格式 $pathName = date('Y-m/d') . '/' .$fileName; //执行阿里云上传 bucket名称,上传的目录,文件 $result = $ossClient->uploadFile($bucket, $pathName, $file->getInfo()['tmp_name']); } catch (OssException $e) { return $e->getMessage(); } //将结果输出 return $result['info']['url']; }