ThinkPHP6
如何上传图片七牛云,如何上传文件到七牛云对象储存cos,总所周知图片是特别消耗网站带宽的,个人网站将图片上传至七牛云才能显著提升网站的响应速度,手把手交大家如何上配置ThinkPHP6上传文件至七牛云.
- 准备工作
确保你已经正确安装了composer
包管理工具,本地ThinkPHP6.0
的项目也已经成功搭建. - 安装七牛云官方sdk包
利用composer
安装七牛云官方sdk包,大家可以参考七牛云官方sdk文章,按照文档步骤进行,首先在命令提示行打开项目根目录,我这里以自己的博客为例,然后执行composer require qiniu/php-sdk
等待进度条走完,七牛云官方sdk包就安装完成啦~下图为演示命令:
七牛云命令
安装成功后我们就能在项目根目录看到七牛云的包,在vendor
下可以看到七牛云的包,官方还为我们写好了案例,大家可以参考里面的写法~
目录
3.准备七牛云账号
注册申请自己的七牛云账号并创建自己的存储空间,先去个人中心那到自己的秘钥~位置如下如图
image.png
个人空间大家可以创建自己的域名或者不手动创建,我这里已经创建好域名了~
image.png
4.修改tp6项目根目录下的.env文件,将我们的QINIU_ACCESS_KEY
和QINIU_SECRET_KEY
保存起来.
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = blog
USERNAME = root
PASSWORD = root
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
[LANG]
default_lang = zh-cn
[QINIU]
QINIU_ACCESS_KEY = xxxxxx改为你的
QINIU_SECRET_KEY = xxxxxx改为你的
QINIU_BUCKET = xxxxxx改为你的
QINIU_DOMAIN = xxxxxx改为你的
- 在
app\common
下新建一个公共七牛云文件上传类
<?php
namespace app\common;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use think\facade\Env;
class Qiniu
{
public static function upload($filePath,$filename){
$filename=str_replace('\\','/',$filename);//替换\斜杠
// 需要填写你的 Access Key 和 Secret Key
$accessKey=Env::get('qiniu.qiniu_access_key');
$secretKey=Env::get('qiniu.qiniu_secret_key');
$bucket=Env::get('qiniu.qiniu_bucket');
$domain=Env::get('qiniu.qiniu_domain');
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
// 生成上传 Token
$token = $auth->uploadToken($bucket);
// 初始化 UploadManager 对象并进行文件的上传。
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传。
$res = $uploadMgr->putFile($token, $filename, $filePath);
if($res[1]==null){ //上传成功
return $domain.$filename;
}else{//上传失败
return '';
}
}
}
然后我们就可以使用$url=Qiniu::upload($filePath,$filename);
传入文件的相对路径或绝对路径加上文件名,在文件上传成功后自动又将图片上传至七牛云~
网友评论