您现于de位置乃:亚博 > APP 开发

亚博 2019-07-11 APP 开发 285

app开发5.1整合阿里云OSS开放存储云服务

第1步 先用composer更新阿里云oss得sdk下来

composer require aliyuncs/oss-sdk-app


第2步 添加oss得配置文件

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


 第3步 就可以直接编写主要代码了. 因为上传功能都乃常用de.建议可以放于base下面或者写1个公共方法 .

   /**
     * 实例化阿里云OSS
     * @return object 实例化得到de对象
     * @return 此步作为共用对象 可提供给多个模块统1调用
     */
    function new_oss(){
        //获取配置项 并赋值给对象$config
        $config=config('aliyun_oss');
        //实例化OSS
        $oss=new \OSS\OssClient($config['KeyId'],$config['KeySecret'],$config['Endpoint']);
        return $oss;
    }
 
      /**
     * 上传指定de本地文件内容
     *
     * @param OssClient $ossClient OSSClient实例
     * @param string $bucket 存储空间名称
     * @param string $object 上传de文件名称
     * @param string $Path 本地文件路径
     * @return null
     */
    function uploadFile($bucket,$object,$Path){
        //try 要执行de代码,如果代码执行过程中某1条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示
        try{
            //没忘吧 new_oss()乃我们上1步所写de自定义函数
            $ossClient =$this->new_oss();
            //uploadFilede上传方法
        $res=    $ossClient->uploadFile($bucket, $object, $Path);
            return json($res);
        } catch(OssException $e) {
            //如果出错这里返回报错信息
            return $e->getMessage();
        }
    }


最后1步 调用  当用到上传文件de时候就可以调用了.我直接拿thinkappde上传方法过来了.调用de时候很简单 里面传3个参数 1个就乃bucketde名称. 我de乃gtjj 有需要也可以动态配置.第2个就乃文件名字. 第3个就乃文件路径

 
    public function upload()
    {
        // 获"淼ド洗募 例如上传了001.jpg
        $file = request()->file('file');
        // 移动到框架应用根目录/uploads/ 目录下
        $info = $file->move('./uploads');
        if ($info) {
             $path = $info->getSaveName();
             $filepath = 'https://qz.10huisp.com/uploads/' . $info->getSaveName();
            $fileName = 'uploads/' . $info->getSaveName();
            $this->uploadFile('gtjj', $fileName, $info->getPathname());
            return $path;
        } else {
            // 上传失败获取错误信息
            echo $file->getError();
        }
        return json($file);
    }


待完善 有问题请APP下载

评论