【tp5.1】七牛雲上傳圖片


composer安裝:

composer require qiniu/php-sdk

配置使用:

在tp5.1的配置文件app.php中配置七牛雲的參數

    'qiniu' => [
        'accesskey' => '你的accesskey',
        'secretkey' => '你的secretkey',
        'bucket'    => '存儲空間',
        'domain'    =>  '域名'
    ],

前端使用webuploader上傳

/*****加載AJAX上傳圖片******/
// 調用形式  Upload(元素編號,允許上傳商品數量);
function Upload(i,num){
    sumimg(num);
//            var token = 'ZTEpdpZn1J1fLzgTfNtLXvRmcu0bjcnTUUhoQsEW';
    var uploader = WebUploader.create({
        auto: true,
        swf: '/static/extends/lib/webuploader/0.1.5/Uploader.swf',//文件接收服務端。
        server: '/admin/tool/uploadImg',//文件接收服務端。
        pick: '#filePicker'+i,//指定選擇文件的按鈕容器
        fileNumLimit: num,//文件數量
        compress: {
            // 圖片質量,只有type為`image/jpeg`的時候才有效。
            quality: 90,
        },
        accept: { //指定接受哪些類型的文件
            title: 'Images',
            extensions: 'gif,jpg,jpeg,bmp,png',
            mimeTypes: 'image/*'
        }
    });
    uploader;
    //當文件被加入隊列以后觸發
    uploader.on('fileQueued',function(file){
        var $li = $(
                '<div id="' + file.id + '" class="file-item thumbnail" onclick="delUpload(this,'+i+','+num+');">' +
                '<input type="hidden" name="img[]" id="'+file.id+'id" />'+
                '<img>' +
                '<div class="info">開始上傳圖片...</div>' +
                '</div>'
            ),
            $img = $li.find('img');
        $("#fileList"+i).append($li);//圖片添加到容器
        var sum = $("#fileList"+i).find('.file-item').length;
        if(sum >= num){
            $("#filePicker"+i).attr('style','display:none;');
        }
        // 創建縮略圖顯示
        uploader.makeThumb(file,function(error,src){
            if (error){
                $img.replaceWith('<span>不能預覽</span>');
                return;
            }
            $img.attr('src',src);
        },200,200);
    });
    // 文件上傳過程中創建進度百分比實時顯示。
    uploader.on('uploadProgress',function(file,percentage){
        $("#"+file.id+" .info").html('正在上傳('+parseInt(percentage*100)+'%)');
    });

    //文件上傳返回成功,判斷是否成功上傳到七牛
    uploader.on('uploadSuccess', function(file,response){
        if(response.code == 0){
            $("#"+file.id+" .info").html('上傳失敗');
        }else{
            sumimg(num);
            $("#"+file.id+" .info").html('上傳完成,點擊圖片可刪除');
            $( '#'+file.id ).addClass('upload-state-done');
            $( '#'+file.id+"id").val(response.data);//賦值到input
        }
    });
}

 

后台代碼:

調用七牛

use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;

上傳圖片:

        // 初始化簽權對象
        $auth = new Auth($this->_accessKey,$this->_secretKey);

        $token = $auth->uploadToken($this->_bucket);

        // 構建 UploadManager 對象
        $uploadMrg = new UploadManager();

        // 上傳文件到七牛
        $files = $_FILES;
        $values = array_values($files);
        $saveName = hash_file('sha1', $values[0]['tmp_name']) . time();
        list($ret, $err) = $uploadMrg->putFile($token, $saveName, $values[0]['tmp_name']);

        if ($err !== null) {
            $return =  [
                'code'  =>  0,
                'msg'   =>  '上傳圖片失敗'
            ];
        } else {
            $return =  [
                'code'  =>  1,
                'msg'   =>  '上傳成功',
                'data'  =>  'http://' . $this->_domain . '/' . $ret['key']
            ];
        }
        return json($return);

 

刪除圖片:

        $img = Request::param('name');

        $imgArr = explode('/',$img);

        $delImgName = end($imgArr);

            // 初始化簽權對象
        $auth = new Auth($this->_accessKey,$this->_secretKey);

        $config = new Config();

//        管理資源
        $bucketManager = new BucketManager($auth,$config);

//        刪除文件操作
        $res = $bucketManager -> delete($this->_bucket,$delImgName);

        if (is_null($res) || $res == null) {
            // 為null成功
            $return = [
                'code'  =>  1,
                'msg'   =>  '刪除成功'
            ];
        }else{
            $return = [
                'code'  =>  0,
                'msg'   =>  '刪除失敗'
            ];
        }

        return json($return);

 


免責聲明!

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



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