wxy0126

首先安装阿里云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\'];
    }           

 

分类:

技术点:

相关文章: