ueditor上传阿里云OSS实现代码

浏览:6936 发布日期:2017/05/09 分类:功能实现 关键字: OSS 阿里云OSS ueditor
此代码包含 单张图片图片 实时上传到OSS 和 提交表单时将ueditor打包成txt文件上传到OSS
首先声明一下,本人菜鸟新手一枚,以下代码肯定不是实现该功能的最佳方法,不喜请勿喷,嘴下留情,谢谢.
一、图片实时上传到OSS功能实现,首先下载ueditor,上传到根目录,相关页面添加以下JS代码:var ue = UE.getEditor('container',{
    serverUrl: "{:U('ueditor')}"
});
ThinkPHP控制器中 添加以下代码:public function ueditor(){    
        date_default_timezone_set("PRC");
        error_reporting(E_ERROR);
        header("Content-Type: text/html; charset=utf-8");
        $CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("./ueditor/php/config.json")), true);
        $action = $_GET['action'];
        switch ($action) {
            case 'config':
                $result =  json_encode($CONFIG);
                break;
        
            /* 上传图片 */
            case 'uploadimage':
            /* 上传涂鸦 */
            case 'uploadscrawl':
            /* 上传视频 */
            case 'uploadvideo':
            /* 上传文件 */
            case 'uploadfile':
                $result = include("./ueditor/php/action_upload.php");
                break;
        
            /* 列出图片 */
            case 'listimage':
                $result = include("./ueditor/php/action_list.php");
                break;
            /* 列出文件 */
            case 'listfile':
                $result = include("./ueditor/php/action_list.php");
                break;
        
            /* 抓取远程文件 */
            case 'catchimage':
                $result = include("./ueditor/php/action_crawler.php");
                break;
        
            default:
                $result = json_encode(array(
                    'state'=> '请求地址出错'
                ));
                break;
        }
        
        /* 输出结果 */
        if (isset($_GET["callback"])) {
            if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
                echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
            } else {
                echo json_encode(array(
                    'state'=> 'callback参数不合法'
                ));
            }
        } else {
            $row = json_decode($result,true);
            if($row['state'] == 'SUCCESS'){
                vendor('aliyun.autoload');
                $accessKeyId = "";//去阿里云后台获取秘钥
                $accessKeySecret = "";//去阿里云后台获取秘钥
                $endpoint = "";//你的阿里云OSS地址
                $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
                $bucket= "";//oss中的文件上传空间
                $object = 'images/' . $row['title'];//想要保存文件的名称
                $file = './images/' . $row['title'];//文件路径,必须是本地的。
                try{
                    $ossClient->uploadFile($bucket,$object,$file);
                                        //上传后不删除本地文件,请删除或注释这一行
                    unlink($file);
                } catch(OssException $e) {
                    return;
                }
            }
            echo $result;
        }
    }
二、提交表单后打包成txt文件并上传到阿里OSS代码:public function add($content){
        $file = time() . rand(100000,999999) . '.txt';
        $text = fopen("./text/{$file}","w");
        fwrite($text,$content);
        vendor('aliyun.autoload');
        $accessKeyId = "";//去阿里云后台获取秘钥
        $accessKeySecret = "";//去阿里云后台获取秘钥
        $endpoint = "";//你的阿里云OSS地址
        $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $bucket= "";//oss中的文件上传空间
        $object = 'text/' . $file;//想要保存文件的名称
        $files = './text/' . $file;//文件路径,必须是本地的。
        try{
            $ossClient->uploadFile($bucket,$object,$files);
            //如果不删除本地文件 删除或注释这一行
            unlink($files);
                        //存入数据库或其他操作
        } catch(OssException $e) {
            //上传失败,自己编码
            return;
        }
    }
所需文件已上传,下载后直接覆盖到网站根目录就可以.
以上代码本人确认可用并已经应用到项目中,发布此代码也是为了抛砖引玉,期盼有更完美的解决方案,再说一次,不喜勿喷.谢谢

附件 ThinkPHP.zip ( 60.8 KB 下载:203 次 )

评论( 相关
后面还有条评论,点击查看>>