新闻api WorldCloud webpack sed uiview stack UIkit vue网站 vue钩子函数 photoshop视频教程全集下载 jq遍历 rxjava线程切换 鼠标失去焦点事件 matlab求矩阵最大值 本地安装mysql js控制台打印 python自学教程 python安装配置 python中len函数 python的文件操作 python模块大全 java实现 java环境配置 java的正则表达式 java判断语句 java遍历文件夹下所有文件 java八大基本数据类型 java方法的调用 java的多线程 liunx命令大全 linux磁盘管理 opengl编程指南 数据库系统概论第五版 图片链接生成器 视频加字幕软件哪个好 cg模宝 dxsetup mac画图工具 汽车配件查询软件 机械键盘个别键位失灵
当前位置: 首页 > 学习教程  > 编程语言

阿里云OSS 简单文件上传,配置

2020/9/19 16:03:48 文章标签:

云存储

1、阿里云oss

https://packagist.org/packages/aliyuncs/oss-sdk-php

安装sdk

composer require aliyuncs/oss-sdk-php

第一步找到config的app这里主要就是配置一下常用信息。 比如
在你的配置文件里面配置一些基础信息 如下

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

第二步编写主要代码

因为上传功能都是常用的。建议可以放在base下面或者写一个公共方法 。

   /**
     * 实例化阿里云OSS
     * @return object 实例化得到的对象
     * @return 此步作为共用对象,可提供给多个模块统一调用
     */
    function newOss(){
        //获取配置项,并赋值给对象$config
        $config=config('aliyun_oss');

        //实例化OSS
        $oss=new \OSS\OssClient($config['KeyId'],$config['KeySecret'],$config['Endpoint']);

        return $oss;

    }


   /**
     * 上传指定的本地文件内容
     *
     * @param OssClient $ossClient OSSClient实例
     * @param string $bucket 存储空间名称
     * @param string $object 上传的文件名称
     * @param string $Path 本地文件路径
     * @return null
     */

    function uploadFile($bucket,$object,$Path){

        //try 要执行的代码,如果代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示

        try{

            //没忘吧,new_oss()是我们上一步所写的自定义函数

            $ossClient =$this->newOss();

            //uploadFile的上传方法

        $res=    $ossClient->uploadFile($bucket, $object, $Path);
            return json($res);
        } catch(OssException $e) {

            //如果出错这里返回报错信息
            return $e->getMessage();

        }

    }

最后一步调用

当用到上传文件的时候就可以调用了。我直接拿thinkphp的上传方法过来了。调用的时候很简单 里面传三个参数 一个就是bucket的名称。 我的是gtjj 有需要也可以动态配置。第二个就是文件名字。 第三个就是文件路径

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();
            //参数1 :Bucket 名称  ,2.文件名 ,3.文件相对硬盘的路径
            $this->uploadFile('gtjj', $fileName, $info->getPathname());
            return $path} else {

            // 上传失败获取错误信息
            echo $file->getError();
        }
        return json($file);

    }

阿里云控制台可以看到文件
在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_200350.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?