阿里雲OSS for phpcmsV9

一、下載OSS的SDK,下載地址
http://code.taobao.org/p/thered/src/ThinkPHP/Lib/Service/oss/
http://code1.okbase.net/codefile/sdk.class.php_2014120428044_105.htmphp

http://code.taobao.org/p/fanshop/src/w8/system/alioss/sdk.class.php
html

http://code.taobao.org/p/fanshop/diff/2/w8/system/alioss/sdk.class.php
ios

二、解壓SDK壓縮包,打開conf.inc.php,修改Access Key ID和Access Key Secret爲本身的


三、將SDK包中的如下文件放入紅色框的路徑
緩存

四、打開phpcms\modules\admin\templates\setting.tpl.php
搜索cookie

<td class="y-bg"><input type="text" class="input-text" name="setconfig[upload_url]" id="upload_url" size="50" value="<?php echo $upload_url?>" /></td>
  </tr>

在下方添加app

<!--阿里雲OSS配置 S-->
  <tr>
    <th width="120"><?php echo L('setting_oss_enable')?></th>
    <td class="y-bg">
    <input name="setconfig[oss_enable]" value="1"  type="radio"  <?php echo ($oss_enable=='1') ? ' checked' : ''?>> <?php echo L('setting_yes')?>&nbsp;&nbsp;&nbsp;&nbsp;
  <input name="setconfig[oss_enable]" value="0" type="radio"  <?php echo ($oss_enable=='0') ? ' checked' : ''?>> <?php echo L('setting_no')?></td>
  </tr> 
  <tr>
    <th width="120"><?php echo L('setting_oss_id')?></th>
    <td class="y-bg">
      <input type="text" class="input-text" name="setconfig[oss_id]" id="oss_id" size="50" value="<?php echo $oss_id?>" />
      <div class="onShow">尚未?<a href="http://help.aliyun.com/manual?spm=0.0.0.111.8BPOua&helpId=786" target="_blank">到這裏獲取API 密鑰</a></div>
    </td>
  </tr>       
  <tr>
    <th width="120"><?php echo L('setting_oss_secret')?></th>
    <td class="y-bg"><input type="password" class="input-text" name="setconfig[oss_secret]" id="oss_secret" size="50" value="<?php echo $oss_secret?>" /></td>
  </tr>
  <tr>
    <th width="120"><?php echo L('setting_oss_bucket')?></th>
    <td class="y-bg"><input type="text" class="input-text" name="setconfig[oss_bucket]" id="oss_bucket" size="50" value="<?php echo $oss_bucket?>" /></td>
  </tr>     
  <tr>
    <th width="120"><?php echo L('setting_oss_path')?></th>
    <td class="y-bg"><input type="text" class="input-text" name="setconfig[oss_path]" id="oss_path" size="50" value="<?php echo $oss_path?>" /></td>
  </tr>       
  <tr>
    <th width="120"><?php echo L('setting_oss_upload_url')?></th>
    <td class="y-bg"><input type="text" class="input-text" name="setconfig[oss_upload_url]" id="oss_upload_url" size="50" value="<?php echo $oss_upload_url?>" /></td>
  </tr>
<!--阿里雲OSS配置 E-->

=====打開phpcms\languages\zh-cn\admin.lang.php
在?>前加入curl

$LANG['setting_oss_enable'] = '啓用阿里雲存儲';
$LANG['setting_oss_id'] = 'Access Key ID';
$LANG['setting_oss_secret'] = 'Access Key Secret';
$LANG['setting_oss_bucket'] = 'Bucket名稱';
$LANG['setting_oss_path'] = 'OSS上的圖片目錄';
$LANG['setting_oss_upload_url'] = '訪問路徑';

打開phpcms\modules\admin\setting.php,
搜索this

$setting['errorlog_size'] = trim($_POST['setting']['errorlog_size']);

在下方添加阿里雲

                //阿里云云存儲配置
                $setting['oss_enable'] = intval($_POST['setconfig']['oss_enable']);
                $setting['oss_id'] = trim($_POST['setconfig']['oss_id']);
                $setting['oss_secret'] = $_POST['setconfig']['oss_secret'];
                $setting['oss_bucket'] = trim($_POST['setconfig']['oss_bucket']);
                $setting['oss_path'] = trim($_POST['setconfig']['oss_path']);
                $setting['oss_upload_url'] = trim($_POST['setconfig']['oss_upload_url']);

=====打開phpcms\modules\attachment\attachments.php
搜索url

$this->groupid = param::get_cookie('_groupid') ? param::get_cookie('_groupid') : 8;

在下方加入

$this->oss = getcache('common','commons');        //載入雲存儲配置的緩存

再搜索

echo $aids[0].','.$this->upload_url.$attachment->uploadedfiles[0]['filepath'].','.$attachment->uploadedfiles[0]['isimage'].','.$filename;

替換

if($this->oss['oss_enable']){        //圖片雲存儲
  echo $aids[0].','.$this->oss['oss_upload_url'].$attachment->uploadedfiles[0]['filepath'].','.$attachment->uploadedfiles[0]['isimage'].','.$filename;
  }else{
  echo $aids[0].','.$this->upload_url.$attachment->uploadedfiles[0]['filepath'].','.$attachment->uploadedfiles[0]['isimage'].','.$filename;
}

=====打開phpcms\libs\classes\attachment.class.php
搜索

var $site = array();

在下方加入

var $oss; //雲存儲

再搜索

$this->upload_dir = $upload_dir;

在下方加入

$this->oss = getcache('common','commons');        //載入雲存儲配置的緩存

再搜索

if($watermark_enable) {
      $image->watermark($savefile, $savefile);
}

在下方加入

if($this->oss['oss_enable']){        //圖片雲存儲
    pc_base::load_app_class('sdk', '' ,0);        //載入OSS類
    $oss_sdk_service = new ALIOSS();
    $oss_sdk_service->set_debug_mode(FALSE);        //設置是否打開curl調試模式
    $oss_sdk_service->upload_file_by_file($this->oss['oss_bucket'],$this->oss['oss_path'].$filepath,$this->upload_root.$filepath);
}

再搜索

if($thumbs) foreach($thumbs as $thumb) @unlink($thumb);

在下方加入

//刪除OSS上的圖
if($this->oss['oss_enable']){        //圖片雲存儲
    pc_base::load_app_class('sdk', 'attachment' ,0);        //載入OSS類
    $oss_sdk_service = new ALIOSS();
    $oss_sdk_service->set_debug_mode(FALSE);        //設置是否打開curl調試模式
    $oss_sdk_service->delete_object($this->oss['oss_bucket'],$this->oss['oss_path'].$r['filepath']);
}

五、後臺設置(設置 > 相關設置 > 基本設置),對照如下圖片
phpcms和uploadfile這個兩個都須要手工建立
OSS上的設置


五、最後一點就是將相關模型字段中的editor修改成不保存遠程圖片:

更新緩存!

相關文章
相關標籤/搜索