yii2-ueditor-widget icon indicating copy to clipboard operation
yii2-ueditor-widget copied to clipboard

阿里云存储OSS在这里如何配置

Open lidenggao opened this issue 8 years ago • 3 comments

如题,我上传的资源都要放到OSS中,访问路径也是,请问能不能自定义上传的处理功能?

lidenggao avatar Mar 06 '16 16:03 lidenggao

这个应该通过wrappers来实现比较好 你自己通过stream_wrapper_register注册一个 oss:// 的wrap ,把文件存储的逻辑封在里面然后把编辑器配置的根路径直接指向这个地址就行

http://php.net/manual/zh/wrappers.php

http://php.net/manual/zh/function.stream-wrapper-register.php

ihipop avatar Mar 26 '16 03:03 ihipop

这个可以 'kucha\ueditor\UEditorAction', 定义一个类集成重写uploads就好了

ijackwu avatar Jan 19 '17 06:01 ijackwu

我直接继承了原来的Action

<?php
namespace backend\components;

use Yii;
use kucha\ueditor\UEditorAction as UEditor;
use common\components\AliyunOss;
use yii\helpers\ArrayHelper;

class UEditorAction extends UEditor
{
    public function init()
    {
        parent::init();
    }

    public function run()
    {
        $data = parent::run();

        // 上传到 OSS
        if(ArrayHelper::getValue($data,'state') == 'SUCCESS' && Yii::$app->params['upload']['type'] == 'oss'){
            $aliyunOSS = new AliyunOss();
            if($aliyunOSS->uploadFile(substr($data['url'],1), Yii::$app->params['upload']['config']['local']['dir'].$data['url'])){
                @unlink(Yii::$app->params['upload']['config']['local']['dir'].$data['url']);
            }else{
                $data['state'] = 'FAILURE';
            }
        }

        return $data;
    }
}

xiongjinchao avatar Nov 14 '19 03:11 xiongjinchao