前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP6.0七牛云文件上传封装

ThinkPHP6.0七牛云文件上传封装

作者头像
很酷的站长
发布2023-02-18 17:24:00
9900
发布2023-02-18 17:24:00
举报
文章被收录于专栏:站长的编程笔记

引入七牛云扩展包

代码语言:javascript
复制
composer require qiniu/php-sdk

创建文件上传配置文件 config/upload.php

代码语言:javascript
复制
<?php

// 文件上传配置

return [
'qiniu' => [
// 存储空间名称
'bucket' => 'itqaq',
// 存储空间的对应域名
'domain' => '//qbx51pqrr.bkt.clouddn.com',
// 用于签名的公钥 AccessKey
'accessKey' => 'l_OnndRIVj17ZwIKMOZBLorh5dK4BKIxxxxxx',
// 用于签名的私钥 SecretKey
'secretKey' => '7fXF7wbOWcC5pUJKmGz3N8DU6ZB7u3exxxxxx',
],
];

七牛云文件上传封装

代码语言:javascript
复制
<?php
namespace app\admin\controller;

use think\facade\Config;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

/**
* 七牛云封装类
*/
class Qiniu
{
/**
* 文件上传到七牛云
* @return 在七牛云上的文件名
*/
public static function upload($field = '', $dirname = '')
{
// 存储空间名称
$bucket = Config::get('upload.qiniu.bucket');
// 存储空间对应的域名
$domain = Config::get('upload.qiniu.domain');
// 用于签名的公钥 AK
$accessKey = Config::get('upload.qiniu.accessKey');
// 用于签名的私钥 SK
$secretKey = Config::get('upload.qiniu.secretKey');
$file = request()->file($field);

if ($file) {
// 临时文件路径
$tmpName = $file->getRealPath();
// 初始化鉴权对象
$auth = new Auth($accessKey, $secretKey);
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 上传管理类 构建UplaodManager对象
$uploadMgr = new UploadManager();
// 原始文件后缀名
$ext = $file->getOriginalExtension();
// 目录名
if ($dirname != '') $dirname .= '/';

// 随机文件名
$path = $dirname . md5(microtime(true) . mt_rand(1, 1e9)) . '.' . $ext;
$info = $uploadMgr->putFile($token, $path, $tmpName);

// 上传到七牛云后的新名称
return $domain . '/' . $info[0]['key'];
} else {
return '没有文件上传';
}
}
}

使用示例

代码语言:javascript
复制
//qbx51pqrr.bkt.clouddn.com/article/content/1e0ba811a443c5a38e1e615f35526bc3.jpg

\app\admin\controller\Qiniu::upload('pic', 'article/content');
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档