七牛上传图片以及分装好的上传类

<?php
USE Qiniu\Auth;
USE Qiniu\Storage\BucketManager;
USE Qiniu\Storage\UploadManager;

require "QiqniuSdk/autoload.php";

Class Qiniu{

    private $Access_Key;
    private $Secret_Key;
    private $bucket;
    private $domain;
    private $path='qnfile';     //默认目录
    private $symbol='_';        //默认分隔符

    public function __construct(){
        $this->init();
    }

    public function init(){
        $CI        = &get_instance();
        $CI->config->load('qiniu', TRUE);       //加载七牛配置
        $config = $CI->config->item('qiniu','qiniu');
        $this->Access_Key   = $config['Access_Key'];
        $this->Secret_Key   = $config['Secret_Key'];
        $this->bucket       = $config['bucket'];
        $this->domain       = $config['domain'];

    }

    /**
     * @Author  
     * @version 1.0.1 
     * @param   [json/array]    $data      [需要上传的数据]
     * @param   [str]    $film_name [文件名称前半部分]
     * @param   [str]    $uniqid    [文件名称后半部分]
     * @return  [type]              [文件的链接]
     */
    public function makeJson($data,$film_name,$uniqid){
        if(is_array($data)){
            $data = json_encode($data); 
        }
        !file_exists($this->path) && mkdir($_SERVER['DOCUMENT_ROOT'].'/'.$this->path,0777);
        $file_name = $film_name.$this->symbol.$uniqid.'.json';                  //文件名称
        $path = $this->path.'/'.$file_name;                                     //文件夹路径
        $res  = file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$path, $data);
        return $this->upFile($path,$file_name);
    }

    private function upFile($file,$file_name){
        $auth = new Auth($this->Access_Key,$this->Secret_Key);
        $bucketManager = new BucketManager($auth);
        $url = $_SERVER['SERVER_NAME'].'/'.$file;
        $key = $file_name;
        $bucket = $this->bucket;
        // 指定抓取的文件保存名称
        list($ret, $err) = $bucketManager->fetch($url, $bucket, $key);
        // echo "=====> fetch $url to bucket: $bucket  key: $key\n";
        if ($err !== null) {
            return $err;
        } else {
            unlink($_SERVER['DOCUMENT_ROOT'].'/'.$file);
            return $this->domain.'/'.$file_name;
        }
        // 不指定key时,以文件内容的hash作为文件名
        // $key = null;
        // list($ret, $err) = $bucketManager->fetch($url, $bucket, $key);
        // // echo "=====> fetch $url to bucket: $bucket  key: $(etag)\n";
        // if ($err !== null) {
        //     var_dump($err);
        // } else {
        //     print_r($ret);
        // }
    }

    /**
     * 七牛上传接口
     * @Author    
     * @DateTime  2017-12-05
     * @param     [string]      $name     [文件名称]
     * @param     [string]      $filePath [文件路径]
     * @param     [string]      $type     [文件类型]
     */
    public function upload($name,$filePath,$type){
        $auth = new Auth($this->Access_Key,$this->Secret_Key);
        $token = $auth->uploadToken($this->bucket);//生成token      ($this->bucket);
        $upManager = new UploadManager();           
        list($ret,$err)=$upManager->putFile($token,$name,$filePath,null,$type,false);   //上传文件到七牛

        if($err){
            return false;
        }else{
            return $this->domain.'/'.$name;
        }
    }

    /**
     * 分片上传返回所需数据
     * @Author    
     * @DateTime  2017-12-04
     * @return    array
     */
    public function slice(){
        header('Access-Control-Allow-Origin:*');
        $bucket = $this->bucket;
        $auth = new Auth($this->Access_Key,$this->Secret_Key);
        $upToken = $auth->uploadToken($bucket);
        return (array('uptoken' => $upToken,'domain' => $this->domain));
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值