thinphp php 七牛云sdk 图片上传

安装 七牛云sdk 图片上传

在项目根目录下php composer.phar require qiniu/php-sdk,或者composer require qiniu/php-sdk等待即可完成。

在vendor 下可以看到qiniu目录

在七牛云账号设置里面找到自己的ak和sdk

可以在config.php 或则 extra 扩展参数下添加一个qiniu.php 都可以,必须配置能够使用

qiniu.php 代码

<?php 

return [ 
    'AccessKey' => 'CfUQ83YrrTeIEWgXC7vWxQArM*******YaiKOT0', // ak
    'SecretKey' => 'Bmi9FO6U4HUDL25c68YhhxxF******TAGLzHFJa', // sk
    'BUCKET' => '***',    // 这个是你的存储空间的地址!!!!
    'domin' => 'ooa58iqmb.bkt.clouddn.com', // 这个是你的图片镜像地址
];

使用

可以在common下面创建一个公共类 lib/
<?php
namespace app\common\lib;

// 引入鉴权类  
use Qiniu\Auth;  
// 引入上传类  
use Qiniu\Storage\UploadManager;  

/**
 * 返回一个加密数据
 * $file 传入的图片本地地址
 *  return $key 上传成功的图爿代码
 *  如果中间数显了noobject 则问题应该是你的ak或则sk或者储存空间地址写错了
 */
Class Upload {

public static function image($file=''){  
    if( !$file ){
        return '';
    }
    $file = '../public/static/ueditor/php/upload/20180515/15263909228063.jpg';  //这里我代用了一个图片地址
    
    $str = explode('.',$file);
    $ext = $str[count($str)-1]; // 获取后缀名
    
    $config = config('qiniu');  
    
    // 构建一个鉴权对象  
    $auth = new Auth($config['AccessKey'],$config['SecretKey']);  

    // 生成上传的token  
    $token = $auth->uploadToken($config['BUCKET']);  
    // 上传到七牛后保存的文件名  
    $key = date('Y').'/'.date('m').'/'.substr(md5($file),0,5).date('YmdHis').mt_rand(0,9999).'.'.$ext;  
    
    // 初始化UploadManager类  
    $uploadMgr = new UploadManager();  
    list($ret,$err) = $uploadMgr->putFile($token,$key,$file);  
    if($err !== null){  
        return '';  
    }else{  
        // return $key;  
        return $key;
    }  
}

}

相关推荐