1. TP框架 目录cmd 运行 `
composer require qiniu/php-sdk`
文件自动下载到 tp5.com\vendor\qiniu
2.TP框架目录 config目录下
新建文件upload.php
<?php
// 文件上传配置
return [
'qiniu' => [
// 存储空间名称 填写自己的
'bucket' => 'heisi',
// 存储空间的对应域名 填写自己的
'domain' => 'kodo.****.com',
// 用于签名的公钥 AccessKey 填自己的
'accessKey' => 'xxxxxx',
// 用于签名的私钥 SecretKey 填自己的
'secretKey' => 'xxxxxx',
],
];
3. 封装一个静态方法 用于 七牛云文件上传
<?php
namespace app\demo\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();
// 输出 后缀
$arr = $file->getInfo();
$ext=$arr['name'];
$temp = pathinfo($ext);
$ext=$temp['extension'];
// dump($ext);
// die();
// $ext = $file->getOriginalExtension(); TP6 后缀可以换成这个
// 目录名
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 '没有文件上传';
}
}
}
演示:
方法:
public function shangchuan(){
if ( request()->isPost() )
{
return \app\demo\controller\Qiniu::upload('headimgurl', 'article/content');
}
return view();
}
前台:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
<div class="form-group" style="margin-bottom: 25px;">
<label for="" class="col-sm-2 control-label no-padding-right">图</label>
<div class="col-sm-6">
<input type="file" class="form-control" id="headimgurl" name="headimgurl"
style="cursor: pointer;">
<img src="" id="headimgurl-view">
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
<button type="submit" class="btn btn-primary">添加</button>
</form>
</body>
</html>
访问方法即可 上传,上传成功 返回文件名
经原文 https://itqaq.com/index/art/8.html学习