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