项目需求:ThinkPhp5.1+阿里云oss实现图片的上传与浏览

首先我们需要下载阿里云OSS的sdk,我们使用composer下载sdk

我们直接上步骤

1、使用composer下载阿里云oss


composer require aliyuncs/oss-sdk-php

2、在配置项配置oss基础设置,thinkphp5.1没有config.php文件,我们需要在app文件里写oss配置项



'aliyun_oss' => [
        'KeyId'      => '',  //您的Access Key ID
        'KeySecret'  => '',  //您的Access Key Secret
        'Endpoint'   => '',  //阿里云oss 外网地址endpoint
        'Bucket'     => '',  //Bucket名称

]

//根据以上提示吧阿里云oss基础设置填写好

3、这时候我们可以直接写代码了,上传功能是常用的所以我们把上传写在一个公共方法里边UpFiles方法里边,上代码



public function upload(){

        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        //获取表单上传文件
        $file = request()->file($fileKey['0']);
        $resResult = Image::open($file);
        try {
            $config =Config::get('aliyun_oss'); //获取Oss的配置

            //实例化对象 将配置传入
            $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']);
            //这里是有sha1加密 生成文件名 之后连接上后缀
            $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();
            //执行阿里云上传
            $result = $ossClient->uploadFile($config['Bucket'], $config['path'].$fileName, $file->getInfo()['tmp_name']);

            if ($result){
                $result['code'] = 1;
            $result['info'] = '图片上传成功!';

            $result['url'] = $result['oss-request-url'];
            return $result;
            }
        } catch (OssException $e) {
            return $e->getMessage();
        }




//        // 获取上传文件表单字段名
//        $fileKey = array_keys(request()->file());
//        // 获取表单上传文件
//        $file = request()->file($fileKey['0']);
//        // 移动到框架应用根目录/public/uploads/ 目录下
//
//        $info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move('uploads');
//        if($info){
//            $result['code'] = 1;
//            $result['info'] = '图片上传成功!';
//            $path=str_replace('\\','/',$info->getSaveName());
//            $result['url'] = '/uploads/'. $path;
//            return $result;
//        }else{
//            // 上传失败获取错误信息
//
//            $result['code'] =0;
//            $result['info'] =  $file->getError();
//            $result['url'] = '';
//            return $result;
//        }
    }
上边是tp5.1上传到阿里云oss方法  下边是thinkphp上传到本地方法


4、最后我们要把上传返回的url写到数据库就可以了




AD:阿里云2000元代金券九折优惠点我领取 ¥2000元大礼包

AD:腾讯云2860元无门槛代金券,限时领取点我领取 ¥2860无门槛代金券