Laravel 實戰篇 - 七牛雲存儲使用實例


前言:七牛雲是國內領先的企業級公有雲服務商,致力於打造以數據為核心的場景化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('添加失敗');
            }
        }
    }

以上只是一個簡單的控制器完成整個流程的案例。另外個人認為PHP服務器上傳盡量少用,畢竟消耗的是服務器性能。我暫時使用的是javascript接口,使用服務器端上傳。

[原文地址](http://www.blog8090.com/)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM