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

云存储

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);

    }

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值