laravel 七牛 上传文件配置

安装七牛sdk

七牛官方sdk安装传送门 http://developer.qiniu.com/code/v7/sdk/php.html

config目录下 创建qiniu.php

return [
    'accessKey'=>'你的accesskey',
    'secretKey'=>'你的secretKey',
    'bucket'=>'vrvideo',//上传空间名称
    'domain'=>'http://qiniu.com'//地址
];

创建控制器uploadController

namespace App\Http\Controllers;

use App\Http\Controllers\Auth\JsonEcho;
use Illuminate\Http\Request;
//导入七牛相关类
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
class UploadController extends Controller
{
    /**
    *上传凭证
    */
    public function getToken($buckets){
        $accessKey=config("qiniu.accessKey");
        $secretKey=config("qiniu.secretKey");
        $auth=new Auth($accessKey, $secretKey);
        $bucket=$buckets;//上传空间名称
        return $auth->uploadToken($bucket);//生成token
    }

     /**
     * 七牛文件上传
     */
    public function upload($file,$backets){

        $token=$this->getToken($backets);
        $uploadManager=new UploadManager();
        $type = $file->getMimeType();
        $filePath = $file->getRealPath();
        $name = md5(time().rand(1,9999));
        list($ret,$err)=$uploadManager->putFile($token,$name,$filePath,null,$type,false);
        if($err){//上传失败
            return false;
        }else{//成功
            return $ret['key'];
        }
    }

/**
*app调用接口 token
*/
public function qiniu()
{
     $json = new JsonEcho();
     $result = $this->getToken('vrvideo');
     return $json->json_echo(1,'七牛token',$result);
 }
}

其它控制器调用

 $upload = new UploadController();
  if($upload->upload($res->file('headimg'),'imgbucket') == false){
        return $json->json_echo(0,'头像上传失败');
    }else{
        $imgurl = $upload->upload($res->file('headimg'),'imgbucket');
        //把图片插入数据库end
}

你可能感兴趣的:(php,laravel)