php 使用wangEditor3编辑器上传图片至七牛云

打开wangEditor3编辑器官网https://www.kancloud.cn/wangfupeng/wangeditor3/405041

下载demo至本地运行即可。

官网注意:

1、“开始使用”-->“创建一个编辑器”,js引用问题,这里的和下载的demo里的不一样

editor3初始化编辑器用的是E

var E = window.wangEditor

2、“上传图片”-->“tab显示和隐藏” ,可以设置显示‘上传图片’标签字样

// 下面两个配置,使用其中一个即可显示“上传图片”的tab。但是两者不要同时使用!!!
    // editor.customConfig.uploadImgShowBase64 = true   // 使用 base64 保存图片
    // editor.customConfig.uploadImgServer = '/upload'  // 上传图片到服务器

 3、“上传图片”-->“上传到七牛云存储”,初始化七牛上传的方法uploadInit里的uptoken_url地址域名要和访问地址域名一致

 重要的使用editor3编辑器js文件

 把这个下载下来引入,用demo放入项目的话不可以使用初始化不了编辑器。

demo视图文件wangEditor3.html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>wangEditor3 上传图片</title>
    <link rel="stylesheet" type="text/css" href="../wangEditor/css/wangEditor.css">
</head>
<body>
    <p>wangEditor3 上传到七牛云存储</p>
    <div id="div1">
        <p>欢迎使用 wangEditor 富文本编辑器</p>
    </div>

    <!-- <script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="../wangEditor/js/wangEditor.min.js"></script>
    <script type="text/javascript" src="../js/plupload/plupload.full.min.js"></script>
    <script type="text/javascript" src="../js/plupload/i18n/zh_CN.js"></script>
    <script type="text/javascript" src="../js/qiniu.js"></script> -->
    <script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="../yin/wangEditor.min.js"></script>
    <script type="text/javascript" src="../yin/plupload.full.min.js"></script>
    <script type="text/javascript" src="../yin/qiniu.js"></script>

    <script type="text/javascript">
        var E = window.wangEditor
        var editor = new E('#div1')
        // 允许上传到七牛云存储
        editor.customConfig.qiniu = true
        editor.create()

        // 初始化七牛上传
        uploadInit()

        // 初始化七牛上传的方法
        function uploadInit() {
            var btnId = editor.imgMenuId;
            var containerId = editor.toolbarElemId;
            var textElemId = editor.textElemId;

            // 创建上传对象
            var uploader = Qiniu.uploader({
                runtimes: 'html5,flash,html4',    //上传模式,依次退化
                browse_button: btnId,       //上传选择的点选按钮,**必需**
                uptoken_url: 'http://www.test.com/php-sdk/examples/upload_simple_file.php',
                    //Ajax请求upToken的Url,**强烈建议设置**(服务端提供)
                // uptoken : '<Your upload token>',
                    //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
                // unique_names: true,
                    // 默认 false,key为文件名。若开启该选项,SDK会为每个文件自动生成key(文件名)
                // save_key: true,
                    // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK在前端将不对key进行任何处理
                domain: 'http://7xrjl5.com1.z0.glb.clouddn.com/',
                    //bucket 域名,下载资源时用到,**必需**
                container: containerId,           //上传区域DOM ID,默认是browser_button的父元素,
                max_file_size: '100mb',           //最大文件体积限制
                flash_swf_url: '../js/plupload/Moxie.swf',  //引入flash,相对路径
                filters: {
                        mime_types: [
                          //只允许上传图片文件 (注意,extensions中,逗号后面不要加空格)
                          { title: "图片文件", extensions: "jpg,gif,png,bmp" }
                        ]
                },
                max_retries: 3,                   //上传失败最大重试次数
                dragdrop: true,                   //开启可拖曳上传
                drop_element: textElemId,        //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
                chunk_size: '4mb',                //分块上传时,每片的体积
                auto_start: true,                 //选择文件后自动上传,若关闭需要自己绑定事件触发上传
                init: {
                    'FilesAdded': function(up, files) {
                        plupload.each(files, function(file) {
                            // 文件添加进队列后,处理相关的事情
                            printLog('on FilesAdded');
                        });
                    },
                    'BeforeUpload': function(up, file) {
                        // 每个文件上传前,处理相关的事情
                        printLog('on BeforeUpload');
                    },
                    'UploadProgress': function(up, file) {
                        // 显示进度
                        printLog('进度 ' + file.percent)
                    },
                    'FileUploaded': function(up, file, info) {
                        // 每个文件上传成功后,处理相关的事情
                        // 其中 info 是文件上传成功后,服务端返回的json,形式如
                        // {
                        //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
                        //    "key": "gogopher.jpg"
                        //  }
                        printLog(info);
                        // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
                        
                        var domain = up.getOption('domain');
                        var res = $.parseJSON(info);
                        // var sourceLink = domain + res.key; //获取上传成功后的文件的Url
                        var sourceLink = res.url;

                        printLog(sourceLink);

                        // 插入图片到editor
                        editor.cmd.do('insertHtml', '<img src="' + sourceLink + '" style="max-width:100%;"/>')
                    },
                    'Error': function(up, err, errTip) {
                        //上传出错时,处理相关的事情
                        printLog('on Error');
                    },
                    'UploadComplete': function() {
                        //队列文件处理完毕后,处理相关的事情
                        printLog('on UploadComplete');
                    }
                    // Key 函数如果有需要自行配置,无特殊需要请注释
                    //,
                    // 'Key': function(up, file) {
                    //     // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
                    //     // 该配置必须要在 unique_names: false , save_key: false 时才生效
                    //     var key = "";
                    //     // do something with key here
                    //     return key
                    // }
                }
            });
            // domain 为七牛空间(bucket)对应的域名,选择某个空间后,可通过"空间设置->基本设置->域名设置"查看获取
            // uploader 为一个plupload对象,继承了所有plupload的方法,参考http://plupload.com/docs
        }

        // 封装 console.log 函数
        function printLog(title, info) {
            window.console && console.log(title, info);
        }
    </script>
</body>
</html>

放入项目的编辑框html,引入js文件及js代码:

<tr>
                                                <th><span class="text-danger">*</span><label for="InputTpl">描述</label></th>
                                                <td>
                                                    <!-- 加载编辑器的容器 -->
                                                    <!-- <script id="container" name="content" type="text/plain" style="width:791px;height:400px;"></script> -->
                                                    <input type="hidden" id="contenthtml" name="content">
                                                    <div id="div1"></div>
                                                </td>
                                        </tr>
<!-- 实例化编辑器 -->
<script type="text/javascript" src="/libs/wangEditor/js/wangEditor.min.js"></script>
<script type="text/javascript" src="/libs/wangEditor/js/plupload.full.min.js"></script>
<script type="text/javascript" src="/libs/wangEditor/js/qiniu.js"></script>
<script type="text/javascript" src="/libs/wangEditor/js/wangEditorUpload.js"></script>

wangEditorUpload.js:

var E = window.wangEditor
        var editor = new E('#div1')
        // 允许上传到七牛云存储
        editor.customConfig.qiniu = true
        editor.create()

        // 初始化七牛上传
        uploadInit()

        // 初始化七牛上传的方法
        function uploadInit() {
            var btnId = editor.imgMenuId;
            var containerId = editor.toolbarElemId;
            var textElemId = editor.textElemId;

            // 创建上传对象
            var uploader = Qiniu.uploader({
                runtimes: 'html5,flash,html4',    //上传模式,依次退化
                browse_button: btnId,       //上传选择的点选按钮,**必需**
                // uptoken_url: 'https://admin.zhssw.com/php-sdk/examples/upload_simple_file.php',
                uptoken_url: 'http://test.admin.zhssw.com/Api/qiniuSimple',
                // uptoken_url: 'https://msktapi.zhssw.com/Upload/qiniuSimple',
                // uptoken_url: 'http://test.admin.zhssw.com/php-sdk/examples/upload_simple_file.php',
                    //Ajax请求upToken的Url,**强烈建议设置**(服务端提供)
                // uptoken : '<Your upload token>',
                    //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
                // unique_names: true,
                    // 默认 false,key为文件名。若开启该选项,SDK会为每个文件自动生成key(文件名)
                // save_key: true,
                    // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK在前端将不对key进行任何处理
                domain: 'http://7xrjl5.com1.z0.glb.clouddn.com/',
                    //bucket 域名,下载资源时用到,**必需**
                container: containerId,           //上传区域DOM ID,默认是browser_button的父元素,
                max_file_size: '100mb',           //最大文件体积限制
                flash_swf_url: '../js/plupload/Moxie.swf',  //引入flash,相对路径
                filters: {
                        mime_types: [
                          //只允许上传图片文件 (注意,extensions中,逗号后面不要加空格)
                          { title: "图片文件", extensions: "jpg,gif,png,bmp" }
                        ]
                },
                max_retries: 3,                   //上传失败最大重试次数
                dragdrop: true,                   //开启可拖曳上传
                drop_element: textElemId,        //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
                chunk_size: '4mb',                //分块上传时,每片的体积
                auto_start: true,                 //选择文件后自动上传,若关闭需要自己绑定事件触发上传
                init: {
                    'FilesAdded': function(up, files) {
                        plupload.each(files, function(file) {
                            // 文件添加进队列后,处理相关的事情
                            printLog('on FilesAdded');
                        });
                    },
                    'BeforeUpload': function(up, file) {
                        // 每个文件上传前,处理相关的事情
                        printLog('on BeforeUpload');
                    },
                    'UploadProgress': function(up, file) {
                        // 显示进度
                        printLog('进度 ' + file.percent)
                    },
                    'FileUploaded': function(up, file, info) {
                        // 每个文件上传成功后,处理相关的事情
                        // 其中 info 是文件上传成功后,服务端返回的json,形式如
                        // {
                        //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
                        //    "key": "gogopher.jpg"
                        //  }
                        printLog(info);
                        // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
                        
                        var domain = up.getOption('domain');
                        var res = $.parseJSON(info);
                        // var sourceLink = domain + res.key; //获取上传成功后的文件的Url
                        var sourceLink = res.url;

                        printLog(sourceLink);

                        // 插入图片到editor
                        editor.cmd.do('insertHtml', '<img src="' + sourceLink + '"/>')
                    },
                    'Error': function(up, err, errTip) {
                        //上传出错时,处理相关的事情
                        printLog('on Error');
                    },
                    'UploadComplete': function() {
                        //队列文件处理完毕后,处理相关的事情
                        printLog('on UploadComplete');
                    }
                    // Key 函数如果有需要自行配置,无特殊需要请注释
                    //,
                    // 'Key': function(up, file) {
                    //     // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
                    //     // 该配置必须要在 unique_names: false , save_key: false 时才生效
                    //     var key = "";
                    //     // do something with key here
                    //     return key
                    // }
                }
            });
            // domain 为七牛空间(bucket)对应的域名,选择某个空间后,可通过"空间设置->基本设置->域名设置"查看获取
            // uploader 为一个plupload对象,继承了所有plupload的方法,参考http://plupload.com/docs
        }

        // 封装 console.log 函数
        function printLog(title, info) {
            window.console && console.log(title, info);
        }

        if ( $("#btncontenthtml").length > 0 ){
            document.getElementById('btncontenthtml').addEventListener('click', function () {
                // 读取 html
                var contents = $("#contenthtml").val(editor.txt.html());
                // var contents = editor.txt.html();
                // alert(contents);
            }, false)
        }

        if ( $("#btncontenthtml1").length > 0 ){
            document.getElementById('btncontenthtml1').addEventListener('click', function () {
                // 读取 html
                var contents = $("#contenthtml").val(editor.txt.html());
                // var contents = editor.txt.html();
                // alert(contents);
            }, false)
        }

wangEditor2编辑器使用手册地址:https://www.kancloud.cn/wangfupeng/wangeditor2/123691

猜你喜欢

转载自blog.csdn.net/han_cui/article/details/94595347