参考-吕昌博客
我们可以直接进入官网的php手册
我发现看composer
里面的qiniu/qiniu组建是没有用的
-
.env
代码
QINIU_BUCKET=test
QINIU_ACCESSKEY=xxxx // AccessKey
QINIU_SECRETKEY=xxxx //SecretKey
QINIU_DOMAIN=xxxx.bkt.clouddn.com
准备部分
第一步-创建密钥AccessKey
,SecretKey
首先去七牛云官网申请一个账号,然后选择个人中心
->密钥管理
->创建密钥
第二部 创建 BUCKET
空间
首页
->对象存储
->创建空间
这个时候填写的的存储空间名称
就是我们所需要的QINIU_BUCKET
值
第三部分 QINIU_DOMAIN
首页
->对象存储
这个时候测试域名
的那个地址,就是我们所需要的 QINIU_DOMAIN
值
使用部分
- 首先运行
composer require qiniu/php-sdk
- 上传大概步骤
...
$accessKey = 'Access_Key';
$secretKey = 'Secret_Key';
$auth = new Auth($accessKey, $secretKey);
// 空间名 https://developer.qiniu.io/kodo/manual/concepts
$bucket = 'Bucket_Name';
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
list($ret, $error) = $upManager->put($token, 'formput', 'hello world');
...
-
实例代码
模板
<html>
<form action="test" method="post"
enctype="multipart/form-data">
{{ csrf_field() }}
<label for="pic">Filename:</label>
<input type="file" name="pic" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</html>// 引入 use Qiniu\Auth; use Qiniu\Storage\UploadManager; /** * 一个表单提交,其中有图片上传的云存储例子. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(\Request $request) { // $data = \Request::all(); $file = $request->file('pic') ; if(!$file){ return back() ; } if(!$file->isValid()){ return back() ; } // 需要填写你的 Access Key 和 Secret Key $accessKey = env('QINIU_ACCESSKEY'); $secretKey = env('QINIU_SECRETKEY'); // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); // 要上传的空间 $bucket = env('QINIU_BUCKET'); // 生成上传 Token $token = $auth->uploadToken($bucket); // 要上传文件的本地路径 $filePath = $file->getRealPath(); // 上传到七牛后保存的文件名 $date = time(); $key = 'demo/'.$date.'.'.$file->getClientOriginalExtension(); // 初始化 UploadManager 对象并进行文件的上传。 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传。 list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); if ($err !== null) { return response()->json(['ResultData'=>'失败','info'=>'失败']); } else { $info = ['name'=>$data['name'], 'level'=>$data['level'], 'pic'=>$ret['key'], 'addtime'=>$date, 'status'=>'1']; $ids = \DB::table('data_demo')->insertGetid($info); if($ids){ return redirect('/demo'); }else{ dd('添加失败'); } } }
文件下载
<?php
require 'path_to_sdk/vendor/autoload.php';
// 引入鉴权类
use Qiniu\Auth;
// 需要填写你的 Access Key 和 Secret Key
$accessKey = 'Access_Key';
$secretKey = 'Secret_Key';
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
//baseUrl构造成私有空间的域名/key的形式
$baseUrl = 'http://domain/key';
$authUrl = $auth->privateDownloadUrl($baseUrl);
echo $authUrl;
?>
删除单个文件
public function test2()
{
$accessKey = env('QINIU_ACCESSKEY');
$secretKey = env('QINIU_SECRETKEY');
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
// dd($auth);
// 要上传的空间
$bucket = env('QINIU_BUCKET');
//初始化BucketManager
$bucketMgr = new BucketManager($auth);
//你要测试的空间, 并且这个key在你空间中存在
$key = 'demo/1486372794.jpg';
//删除$bucket 中的文件 $key
$err = $bucketMgr->delete($bucket, $key);
echo "\n====> delete $key : \n";
if ($err !== null) {
var_dump($err);
} else {
echo "Success!";
}
}
我们查看图片链接会发现,图片的url
其实是 QINIU_DOMAIN
+图片名字
- 图片所在位置是
首页
->对象存储
->内容管理
在创建空间的时候,选择公开空间或者私有空间,我们这套代码都实用