• ThinkPHP3.1.3 整合 UEditor百度编辑器 图片上传


    第一步、前端模板实例化百度编辑器

    <js file='__ROOT__/Data/UEditor/ueditor.config.js' />
    <js file='__ROOT__/Data/UEditor/ueditor.all.min.js' />
    <js file='__ROOT__/Data/UEditor/lang/zh-cn/zh-cn.js' />
    <script type="text/javascript">
        window.UEDITOR_HOME_URL = '__ROOT__/Data/UEditor/'; // 添加编辑器实例所在的路径
        window.onload = function(){
            window.UEDITOR_CONFIG.initialFrameWidth = 1000; // 设置编辑器宽度
            window.UEDITOR_CONFIG.initialFrameHeight = 600; // 设置编辑器高度
            window.UEDITOR_CONFIG.serverUrl = "{:U(GROUP_NAME . '/Blog/upload')}"; // 服务器统一请求接口路径
            UE.getEditor('container'); // 实例化编辑器,container是要实例化的网页元素id
        }
    </script>

    第二步、后台Tp处理图片上传

    // 编辑器图片上传处理
    public function upload(){
        // 修正UE后台配置文件config.json的路径
        $config = json_decode(preg_replace("//*[sS]+?*//", "", file_get_contents("./Data/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':
                // 调用ThinkPHP的UploadFile类
                import('ORG.Net.UploadFile');
                $upload = new UploadFile($config);
                $upload->autoSub = true;    // 启用子目录存储
                $upload->subType = 'date';  // 子目录存储名为日期
                $upload->dateFormat = 'Ym'; // 日期格式:Ym,如:201701
    
                if($upload->upload('./Uploads/')){
                    $info = $upload->getUploadFileInfo();
                    // 图片加水印
                    // import('Class.Image', APP_PATH);
                    // Image::water('./Uploads/' . $info[0]['savename'], './Data/logo.png');
    
                    // 编辑返回数据格式(参考UE源码文件夹下/php/action_upload.php文件)
                    echo json_encode(array(
                        'state' => 'SUCCESS',             // 上传状态,上传成功时必须返回"SUCCESS"
                        'url' => __ROOT__ . '/Uploads/' . $info[0]['savename'],   // 返回的地址
                        'title' => $info[0]['name'] ,     // 新文件名
                        'original' => $info[0]['name'],   // 原文件名
                        'type' =>  $info[0]['type'],      // 文件类型
                        'size' =>  $info[0]['size']        //文件大小
                        ));
                }else{
                    echo json_encode(array('state'=>$upload->getErrorMsg()));
                }
                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 {
            echo $result;
        }
    }
    

    参考链接:Thinkphp3.2.3整合最新百度Ueditor1.4.3编辑器

  • 相关阅读:
    全新的ASP.NET !
    asp.net core+ef core
    直播服务器Nginx
    NET Core1
    网络爬虫1
    java thread reuse(good)
    java中Executor、ExecutorService、ThreadPoolExecutor介绍(转)
    小心LinkedHashMap的get()方法(转)
    LinkedHashMap相关信息介绍(转)
    HashTable和HashMap的区别
  • 原文地址:https://www.cnblogs.com/mingc/p/6501418.html
Copyright © 2020-2023  润新知