ThinkPHP6 七牛云上传图片以及删除图片

一、使用七牛云

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

二、集成PHP-SDK

七牛云开发文档:对象存储 - 七牛开发者中心

Composer 安装 SDK
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:

composer require qiniu/php-sdk

添加表单页面:

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

控制器方法页面:


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'=>''
        ]); 
    }

上一篇:P2P通信标准协议(四)之SIP


下一篇:thinkphp6 权限管理