前言:
七牛雲
是國內領先的企業級公有雲服務商,致力於打造以數據為核心的場景化PaaS
服務。圍繞富媒體場景,七牛
先后推出了對象存儲,融合CDN
加速,數據通用處理,內容反垃圾服務,以及直播雲服務等。
一、安裝
- 通過
composer
,這是推薦的方式,可以使用composer.json
聲明依賴,或者運行下面的命令。SDK
包已經放到這里qiniu/php-sdk
。
composer require qiniu/php-sdk
二、使用方式
案例
// 引入
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
/**
* 一個表單提交,其中有圖片上傳的雲存儲例子.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$data = \Input::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('添加失敗');
}
}
}
以上只是一個簡單的控制器完成整個流程的案例。另外個人認為
[原文地址](http://www.blog8090.com/)PHP
服務器上傳盡量少用,畢竟消耗的是服務器性能。我暫時使用的是javascript接口,使用服務器端上傳。