Tinkphp5.0七牛云图片上传(七牛云官方代码更改)
关于七牛云的相关介绍及基础信息本文就不多加介绍!
直接说在thinkphp5.0中如何使用七牛云的图片存储吧!
步骤一:
下载七牛云SDK文件:
官方地址(该地址包含了thinkPHP和YII框架示例文件包):https://developer.qiniu.com/kodo/kb/4045/php-framework-using-seven-cows?ref=support.qiniu.com
解压后,分为thinkphp3.2版本和thinkphp5.0版本,这里根据你的需要选择对应的版本!(本文以5.0版本为例)
步骤二:
将vendor中的sdk文件复制到你项目中的vendor文件夹中!(这即为七牛云的文件包)
步骤三:
在config中配置你七牛云的基础数据:
// 七牛云
'ACCESSKEY' => '七牛云账号个人中心》密钥管理中获取',//你的accessKey
'SECRETKEY' => '七牛云账号个人中心》密钥管理中获取',//你的secretKey
'BUCKET' => '你设置的空间名称',//上传的空间
'DOMAIN'=>'',//空间绑定的域名
步骤四:
在controller方法中引入七牛云包;
Vendor('sdk.autoload');
use \Qiniu\Auth;
use \Qiniu\Storage\UploadManager;
步骤五:
方法定义:
/**
* 图片上传,ajax返回
* 七牛云存储图片
*/
public function qiniu_upload(){
// 用于签名的公钥和私钥
$accessKey = config('ACCESSKEY');
$secretKey = config('SECRETKEY');
// 初始化签权对象
$auth = new Auth($accessKey, $secretKey);
$bucket = config('BUCKET');
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
// 上传文件到七牛
$file = request()->file('file');//前台图片上传定义的name为file********************
// 要上传图片的本地路径
$filePath = $file->getRealPath();
$ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION); //后缀
// 上传到七牛后保存的文件名
$key =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999) . '.' . $ext;
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
if ($err !== null) {
return ["errno"=>1,"msg"=>$err,"data"=>""];
} else {
//返回图片的完整URL
return json(["errno"=>0,"msg"=>"上传完成","data"=> array(config('DOMAIN').$ret["key"])]);
}
}
结语:到这里,图片已经可以正常上传到七牛云了,通过调用qiniu_upload即可成功!