php 的七牛云文件上传

首先是composer;

composer require qiniu/php-sdk

封装一个方法方便调用

namespace tool\qiniu;

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

class Qiniu
{
    static private $accessKey = "******hOlbqjlda02316GuymO**************";
    static private $secretKey = "******-kRxA6VsvEXH-VxAh59**************";
    static private $bucket = "zhangsan";
    static private $httpHost = "***********.com";

    //获取上传凭证后表单上传
    public function token()
    {
        $auth = new Auth(self::$accessKey, self::$secretKey);
        $token = $auth->uploadToken(self::$bucket);
        return json(['status' => 1, 'msg' => '成功', 'data' => $token]);
    }

    //服务器直传
    public static function image()
    {
        if(empty($_FILES['file']['tmp_name'])){
            explode('图片不合法',404);
        }

        // 要上传文件的临时文件
        $file = $_FILES['file']['tmp_name'];

        $pathinfo = pathinfo($_FILES['file']['name']);

        // 通过pathinfo函数获取图片后缀名
        $ext = $pathinfo['extension'];

        // 构建鉴权对象
        $auth = new Auth(self::$accessKey,self::$secretKey);

        // 生成上传需要的token
        $token = $auth->uploadToken(self::$bucket);

        // 上传到七牛后保存的文件名
        $filename = date('Y').'/'.date('m').'/'.substr(md5($file),8,5).date('Ymd').rand(0,9999).'.'.$ext;


        // 初始化UploadManager类
        $uploadMgr = new UploadManager();
        list($res,$err) = $uploadMgr->putFile($token,$filename,$file);
        if($err !== null){
            return null;
        }else{
            //返回文件整个路径
            return self::$httpHost.'/'.$filename;
        }
    }
}

在别的地方调用;

\tool\qiniu\Qiniu::image();

关于文件删除

public static function delimage($delFileName)
    {
        // 判断是否是图片  目前测试,简单判断
        $isImage = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/', $delFileName);
        if(!$isImage){
            return false;
        }

        // 构建鉴权对象
        $auth = new Auth(self::$ak,self::$sk);

        // 配置
        $config = new \Qiniu\Config();

        // 管理资源
        $bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);

        // 删除文件操作
        $res = $bucketManager->delete(self::$bucket, $delFileName);

        if (is_null($res)) {
            // 为null成功
            echo '删除失败';
            return true;
        }
        dump('删除成功');
        return false;

    }

首先文件删除必须传文件名

调用的例子

$img = input('img');
        \tool\qiniu\Qiniu::delimage($img);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值