thinkphp6 + 七牛云上传

  • Post author:
  • Post category:php


thinkphp6+七牛云上传  使用对象存储

一、使用七牛云

  1. 申请七牛云账户(忽略);
  2. 开通对象存储功能(空间0/10GB,是免费的);
  3. 创建 bucket (空间名称);
  4. 在秘钥管理,创建一个秘钥,获取 AccessKey / SecretKey;

二、集成PHP-SDK

七牛云开发文档:https://developer.qiniu.com/kodo

(一)Composer 安装 SDK(推荐使用)

进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:composer require qiniu/php-sdk

(二)传统方式安装

进入七牛云,下载官方 PHP-SDK,将下载下来的SDK解压,放入项目第三库文件(vendor 或者 extend)

添加表单

​
<form  action="跳转地址" method="跳转方式" enctype="multipart/form-data">
        <div class="form-group" >
          <label>请输入标题</label>
          <input type="text" class="form-control" name="text">
        </div>
        <div class="form-group">
          <label for="exampleInputPassword1">文件</label>
          <input type="file" class="form-control" name="image">
        </div>
        <button type="submit" class="btn btn-primary">Submit</button>
      </form>

​

七牛云上传的处理 PHP后台

public function orderin(Request $request){
       
             // 获取表单上传文件 例如上传了001.jpg
         $key=input('post.text');
         $image = $request->file('image');
         //获取上传后的文件路径
         // 图片存储在本地的临时路经
         $filePath = $image->getRealPath();
         // 获取图片后缀
         $ext = $image->getOriginalExtension();
         // 上传到七牛后保存的新图片名
         $newImageName  =   substr(md5($image->getOriginalName()),0,6)
             .  rand(00000,99999) . '.'.$ext;
             $auth = new Auth('七牛云AK','七牛云SK');
             // 要上传的空间位置
             $token = $auth->uploadToken('空间名称');
     
             // 初始化 UploadManager 对象并进行文件的上传。
             $uploadMgr = new UploadManager();
             list($ret , $err) = $uploadMgr->putFile($token , $newImageName , $filePath);
             if($err !== null){
                 return null;
             }else{
                 // 图片上传成功
                 $da['image']=$newImageName;
                 $da['text']=$key;
                 $da['date']=date("Y/m/d");
                 $n=控制器名称::create($da);
                 if ($n){
                    return '添加成功';
                 }
                }
    }
   

七牛云图片的展示

 public function ordershow(){
        //做了一个分页
        $data=Order::paginate(1);
       
        foreach ($data as $item=>$value){
            $date[$item]['image']='七牛云图片路径'.$value['image'];
        }
        return View::fetch('order/ordershow',compact('data'));
    }

删除七牛云接口

 public function deleteBanner()
    {
        //接收参数
        $params = input();
        //删除逻辑,删除七牛云,删除数据库数据
        $banner = BannerModel::get($params['id']);
        //删除七牛云
        $accessKey = '';//去控制台的秘钥管理拿AK
        $secretKey = '';//去控制台的秘钥管理拿SK
        //七牛云桶名,根据自己实际进行填写
        $bucket = '';
        //域名长度
        $len = strlen('http://qtpud69oi.hn-bkt.clouddn.com/');
        //要删除七牛云图片路径
        $delImageUrl = substr($banner->image_url,$len);

        $auth = new Auth($accessKey, $secretKey);
        $config = new \Qiniu\Config();
        $bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
        $bucketManager->delete($bucket, $delImageUrl);

        //删除数据数据
        $banner->delete();
        return json([
            'msg'=>'删除成功',
            'code'=>200,
            'result'=>''
        ]);

    }



版权声明:本文为lh25946原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。