php(TP5)实现上传到阿里云OSS

php(TP5)实现上传到阿里云OSS,第1张

//composer 地址
composer require aliyuncs/oss-sdk-php

//成功之后会有如下文件

use OSS\OssClient;

protected $config;

public function _initialize()
{
	parent::_initialize(); // TODO: Change the autogenerated stub
    $this->config = [
            'KeyId' => config('alioss.KeyId'),
            'KeySecret' => config('alioss.KeySecret'),
            'Endpoint' => config('alioss.Endpoint'),
            'Bucket' =>config('alioss.Bucket'),
        ];
}

public function saveImg() 
{
        $file = request()->file('imgFile');
        $ioss = $this->ossUploadFile($file);

        return $this->jsonSuccess('上传成功', ['src'=>$ioss]);
}
	 /**
     * @param $file
     * 对上传的文件 进行处理
     * 上传到阿里云oss
     * 存储到数据库
     */
    public function ossUploadFile($file)
    {
        if (empty($file)){
            return $this->jsonError('上传失败');
        }

        $name = $file->getInfo()['name'];
        $ext = explode('.', $name)[1];
        $resResult = sha1(date('YmdHis', time()) . uniqid()) . '.' . $ext;

        // 尝试执行
        try {
            //实例化对象 将配置传入
            $ossClient = new OssClient($this->config['KeyId'], $this->config['KeySecret'], $this->config['Endpoint']);

            //这里是有sha1加密 生成文件名 之后连接上后缀
            $fileName = 'img/' . sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult;

            //执行阿里云上传
            $result = $ossClient->uploadFile($this->config['Bucket'], $fileName, $file->getInfo()['tmp_name']);

            /**
             * 这个只是为了展示
             * 可以删除或者保留下做后面的 *** 作
             */
            $arr = [
                //图片地址
                'imgurl' => $result['info']['url'],
                //数据库保存名称
                'dbimgName' => $fileName
            ];
            $result = $result['info']['url'];
            return $result;
        } catch (OssException $e) {
            //return $e->getMessage();
            echo returnData(-1,$e->getMessage());
        }
        //将结果输出
        // return $arr;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/989513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存