laravel在线教育开发__七牛云改写上传方式

在线教育开发之七牛改写上传方式

为了更好地做到代码与资源分离,大部分的公司都会把一些静态文件(js、css、img、视频等等文件)都会放到第三方/单独的服务器上去。

原因:
①在后期维护网站的也比较方便;
②资源分离之后可以减轻代码服务器的压力;
③如果将资源分离和CDN(content delivery network)配合起来用,对于bat之类的大公司来说1年能够省下的成本至少都是7位数以上;

1.前往七牛官网注册,并实名;
2.创建后期需要的对象存储实例

3.下载七牛的代码依赖库

  1. Github地址:https://github.com/zgldh/qiniu-laravel-storage(安装使用步骤里面都含有)
  2. 安装: composer require zgldh/qiniu-laravel-storage
  3. 配置: config/app.php 里面的 providers 数组, 加上一行
    zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class
  4. config/filesystem.php 里面的 disks数组加上:
 'disks' => [
        ... ,
        'qiniu' => [
            'driver'  => 'qiniu',
            'domains' => [
                'default'   => 'xxxxx.com1.z0.glb.clouddn.com', //你的七牛域名
                'https'     => 'dn-yourdomain.qbox.me',         //你的HTTPS域名
                'custom'    => 'static.abc.com',                //Useless 没啥用,请直接使用上面的 default 项
             ],
            'access_key'=> '',  //AccessKey
            'secret_key'=> '',  //SecretKey
            'bucket'    => '',  //Bucket名字
            'notify_url'=> '',  //持久化处理回调地址
            'access'    => 'public'  //空间访问控制 public 或 private
            'hotlink_prevention_key' => 'afc89ff8bd2axxxxxxxxxxxxxxbb', // CDN 时间戳防盗链的 key。 设置为 null 则不启用本功能。
//            'hotlink_prevention_key' => 'cbab68a279xxxxxxxxxxab509a', // 同上,备用
        ],
    ],

效果如下:

在这里插入图片描述
4.对上面的代码进行修改配置七牛

在这里插入图片描述
注意: 密钥需要在 七牛官网 “个人中心”配置;Bucket名字 就是七牛中对象存储的空间名称。

5.使用七牛的SDK改写(新建)已经实现的上传功能

  1. 关闭本地上传,新增七牛上传(两处,下面还有一处)
    在这里插入图片描述
  2. 编辑上传方法
//上传至七牛云
    public function qiniu(Request $request)
    {
    
    
        //判断是否有文件上传和判断是否长传成功
        if ($request->hasFile('file') && $request->file('file')->isValid()){
    
    
            //重命名
            $filename = sha1(time().$request->file('file')->getClientOriginalName()).'.'.$request->file('file')->getClientOriginalExtension();
            //文件保存移动
            Storage::disk('qiniu')->put($filename,file_get_contents($request->file('file')->path()));

            $msg = [
                'code'  =>  1,
                'msg'   =>  '上传成功',
                'path'   =>   Storage::disk('qiniu')->getDriver()->downloadUrl($filename),
            ];
        }else{
    
    
            $msg = [
                'code'  =>  0,
                'msg'  =>  $request->file('file')->getErrorMessage(),
            ];
        }
        return response()->json($msg);
    }
  1. 需要修改的地方有这几处
    在这里插入图片描述

6.效果如下:

在这里插入图片描述

复制路径可以查看图片

在这里插入图片描述
在七牛服务器中也可以看到新添的图片

在这里插入图片描述
至此,上传成功!!

猜你喜欢

转载自blog.csdn.net/qq_44796093/article/details/108492925
今日推荐