參考-呂昌博客
我們可以直接進(jìn)入官網(wǎng)的php手冊
我發(fā)現(xiàn)看composer
里面的qiniu/qiniu組建是沒有用的
-
.env
代碼
QINIU_BUCKET=test
QINIU_ACCESSKEY=xxxx // AccessKey
QINIU_SECRETKEY=xxxx //SecretKey
QINIU_DOMAIN=xxxx.bkt.clouddn.com
準(zhǔn)備部分
第一步-創(chuàng)建密鑰AccessKey
,SecretKey
首先去七牛云官網(wǎng)申請一個(gè)賬號,然后選擇個(gè)人中心
->密鑰管理
->創(chuàng)建密鑰
點(diǎn)擊個(gè)人中心
個(gè)人中心頁面
密鑰管理頁面
第二部 創(chuàng)建 BUCKET
空間
首頁
->對象存儲
->創(chuàng)建空間
這個(gè)時(shí)候填寫的的存儲空間名稱
就是我們所需要的QINIU_BUCKET
值
image.png
第三部分 QINIU_DOMAIN
首頁
->對象存儲
這個(gè)時(shí)候測試域名
的那個(gè)地址,就是我們所需要的 QINIU_DOMAIN
值
image.png
使用部分
- 首先運(yùn)行
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);
// 構(gòu)建 UploadManager 對象
$uploadMgr = new UploadManager();
list($ret, $error) = $upManager->put($token, 'formput', 'hello world');
...
-
實(shí)例代碼
模板
<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; /** * 一個(gè)表單提交,其中有圖片上傳的云存儲例子. * * @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'); // 構(gòu)建鑒權(quán)對象 $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 對象并進(jìn)行文件的上傳。 $uploadMgr = new UploadManager(); // 調(diào)用 UploadManager 的 putFile 方法進(jìn)行文件的上傳。 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';
// 引入鑒權(quán)類
use Qiniu\Auth;
// 需要填寫你的 Access Key 和 Secret Key
$accessKey = 'Access_Key';
$secretKey = 'Secret_Key';
// 構(gòu)建鑒權(quán)對象
$auth = new Auth($accessKey, $secretKey);
//baseUrl構(gòu)造成私有空間的域名/key的形式
$baseUrl = 'http://domain/key';
$authUrl = $auth->privateDownloadUrl($baseUrl);
echo $authUrl;
?>
刪除單個(gè)文件
public function test2()
{
$accessKey = env('QINIU_ACCESSKEY');
$secretKey = env('QINIU_SECRETKEY');
// 構(gòu)建鑒權(quán)對象
$auth = new Auth($accessKey, $secretKey);
// dd($auth);
// 要上傳的空間
$bucket = env('QINIU_BUCKET');
//初始化BucketManager
$bucketMgr = new BucketManager($auth);
//你要測試的空間, 并且這個(gè)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!";
}
}
我們查看圖片鏈接會發(fā)現(xiàn),圖片的url
其實(shí)是 QINIU_DOMAIN
+圖片名字
- 圖片所在位置是
首頁
->對象存儲
->內(nèi)容管理
image.png
$uploadMgr->putFile($token, $key, $filePath)結(jié)果
在創(chuàng)建空間的時(shí)候,選擇公開空間或者私有空間,我們這套代碼都實(shí)用
image.png