国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術 > cms教程

PbootCMS對接阿里云OSS云存儲

小編 cms教程 2023-03-06 21:33:32

實現(xiàn)方法:

本插件通過oss服務端上傳實現(xiàn),圖片類小文件沒啥問題,上傳視頻附件等大文件會很慢!

效果展示:

PbootCMS對接阿里云OSS云存儲

PbootCMS對接阿里云OSS云存儲

PbootCMS對接阿里云OSS云存儲

二開步驟

修改后臺模板

文件位置:/apps/admin/view/default/system/config.html

<div class="layui-tab-item">
  <form action="{url./admin/Config/index}" method="post" class="layui-form">
    <input type="hidden" name="formcheck" value="{$formcheck}" >
    <div class="layui-form-item">
      <label class="layui-form-label">阿里OSS</label>
      <div class="layui-input-block">
        <input type="radio" name="oss_open" value="1" {if([$configs.oss_open.value]==1)} checked="checked" {/if} title="啟用">
        <input type="radio" name="oss_open" value="0" {if([$configs.oss_open.value]==0)} checked="checked" {/if} title="禁用">
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">阿里AK</label>
      <div class="layui-input-inline">
        <input type="text" name="oss_accak" value="{$configs.oss_accak.value}" placeholder="請輸入OSS AK碼" class="layui-input">
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">阿里SK</label>
      <div class="layui-input-inline">
        <input type="text" name="oss_accsk" value="{$configs.oss_accsk.value}" placeholder="請輸入OSS密鑰"  class="layui-input">
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">bucket</label>
      <div class="layui-input-inline">
        <input type="text" name="oss_bucket" value="{$configs.oss_bucket.value}" placeholder="請輸入bucket庫名"  class="layui-input">
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">上傳地址</label>
      <div class="layui-input-inline" style="width:300px;">
        <input type="text" name="oss_network" value="{$configs.oss_network.value}" placeholder="請輸入OSS外網(wǎng)上傳"  class="layui-input">
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">訪問鏈接</label>
      <div class="layui-input-inline" style="width:300px;">
        <input type="text" name="oss_url" value="{$configs.oss_url.value}" placeholder="請輸入OSS訪問前綴鏈接"  class="layui-input">
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">附件名稱</label>
      <div class="layui-input-block">
        <input type="radio" name="original_name" value="1" {if([$configs.original_name.value]==1)} checked="checked" {/if} title="保持原名">
        <input type="radio" name="original_name" value="0" {if([$configs.original_name.value]==0)} checked="checked" {/if} title="隨機名稱">
      </div>
    </div>
    <div class="layui-form-item">
      <div class="layui-input-block">
        <button class="layui-btn" lay-submit name="submit" value="t9">立即提交</button>
        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
      </div>
    </div>
  </form>
</div>

細節(jié)問題自行調整

上傳OSS SDK包

把下載的SDK上傳到/core/extend

添加OSS上傳代碼

文件位置:/core/function/handle.php

最上面引入一下SDK
use OSSOssClient;
use OSSCoreOssException;
.
.
.
//oss文件上傳
function upload_oss($file_url)
{
    if (is_https()) {
        $network = 'https://' . Config::get('oss_network');
    } else {
        $network = 'http://' . Config::get('oss_network');
    }
    $accessKeyId = Config::get('oss_accak');
    $accessKeySecret = Config::get('oss_accsk');
    $bucket = Config::get('oss_bucket'); //oss庫名
    $url = 'https://' .Config::get('oss_url'); //oss訪問地址
    $content = str_replace("static/", "", strstr($file_url, "static/")); //處理目錄(要上傳的oss目錄)
    try {
        $ossurl = $url . "/" . $content;
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $network);
        $data = $ossClient->uploadFile($bucket, $content, $file_url);
    } catch (Exception $e) {
        $save_file = str_replace(ROOT_PATH, '', $file_url);
        $ossurl = $save_file; // 上傳文件失敗 返回默認的地址
    }
    // 成功的時候刪除本地文件
    if ($data['info']['http_code'] == 200) {
        path_delete($file_url);
    }
    return $ossurl;
}

載入SDK

文件位置:/core/init.php

搜索關鍵詞:載入基礎函數(shù)庫

如圖把這兩句話丟進去

require CORE_PATH . '/extend/alioss/autoload.php';

spl_autoload_register('classLoader', true, true);

PbootCMS對接阿里云OSS云存儲

修改上傳函數(shù)

文件位置:/core/function/file.php

搜索函數(shù):handle_upload 我整個函數(shù)都貼出來自己對比下

頂部引入
use coreasicConfig;

// 處理并移動上傳文件
function handle_upload($file, $temp, $array_ext_allow, $max_width, $max_height, $watermark)
{
    // 定義主存儲路徑
    $save_path = DOC_PATH . STATIC_DIR;
    $file = explode('.', $file); // 分離文件名及擴展
    $file_ext = strtolower(end($file)); // 獲取擴展
    $file_name = $file[0]; //文件名稱
    if (! in_array($file_ext, $array_ext_allow))
    {
        return $file_ext . '格式的文件不允許上傳!';
    }
    
    $image = array(
        'png',
        'jpg',
        'gif',
        'bmp',
        'webp'
    );
    $file = array(
        'ppt',
        'pptx',
        'xls',
        'xlsx',
        'doc',
        'docx',
        'pdf',
        'txt'
    );
    if (in_array($file_ext, $image))
    {
        $file_type = 'image';
        if(Config::get('is_webp')==1){
            // 如果是圖片強制把后綴修改為webp
            $file_ext = "webp";
        }
    } elseif (in_array($file_ext, $file)) {
        $file_type = 'file';
    } else {
        $file_type = 'other';
    }
    
    // 檢查文件存儲路徑
    if (! check_dir($save_path . '/' . $file_type . '/' . date('Ym'), true)) {
        return '存儲目錄創(chuàng)建失??!';
    }
    // 文件名稱處理
    if(Config::get('original_name')==0 || $file_type=='image')
    {
        // 隨機名稱
        $file_name = time() . mt_rand(100000, 999999);
    }
    $file_path = $save_path . '/' . $file_type . '/' . date('Ym') . '/' . $file_name . '.' . $file_ext;
    if (! move_uploaded_file($temp, $file_path)) { // 從緩存中轉存
        return '從緩存中轉存失??!';
    }
    $save_file = str_replace(ROOT_PATH, '', $file_path); // 獲取文件站點路徑
                                                         
    // 如果是圖片
    if (is_image($file_path))
    {
        // 進行等比例縮放
        if (($reset = resize_img($file_path,$file_path,$max_width,$max_height)) !== true)
        {
            return $reset;
        }
        // 圖片打水印
        if ($watermark) {
            watermark_img($file_path);
        }
    }

    // 轉存OSS
    if(Config::get('oss_open')==1)
    {
        $save_file = upload_oss($file_path);
    }
    return $save_file;
}

繼續(xù)修改編輯器上傳函數(shù)

文件地址:/core/extend/ueditor/php/action_upload.php

搜索關鍵詞:$upload = $up->getFileInfo();

如圖代碼丟進去

// 驗證是否上傳OSS
if(Config::get('oss_open') == 1)
{
    $upload['url'] = upload_oss($_SERVER['DOCUMENT_ROOT'].$rs['url']);
}

PbootCMS對接阿里云OSS云存儲

至此結束!


TAg

加載中~

本網(wǎng)站LOGO受版權及商標保護,版權登記號:國作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權所有
轉載內容版權歸作者及來源網(wǎng)站所有,本站原創(chuàng)內容轉載請注明來源,商業(yè)媒體及紙媒請先聯(lián)系:aishangyiwan@126.com

工信部備案號:湘ICP備19012813號-5