Ueditor上手使用教程

他的项目的gitHub地址 https://github.com/fex-team/ueditor,他提供了各个版本demo;我们选择java的版本。

使用方法:

  1. <!-- 配置文件 -->  
    <scripttype="text/javascript"src="ueditor/ueditor.config.js"></script>    
    <!-- 编辑器源码文件 -->  
    <scripttype="text/javascript"src="ueditor/ueditor.all.js"></script>
    注意改下文件路径
  2. //实例化编辑器
        //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
    var ue = UE.getEditor('editor');
    
    //初始化编辑器 (该处用于设置编辑器回显值)
      ue.ready(function () {
          ue.setContent(formData.content);
       });

  3. <script id="editor" type="text/plain"></script>//这行代码在你需要用到的表单元素写上,ueditor会识别到然后实例化一个编辑器到这里的

    到这一步你基本的配置就完成了



  4. 但是如果ueditor支持图片、文档、音乐等文件上传功能,如果你想要配置上传路径,可以修改 ueditor/jsp/config.json。这个文件对于每一个配置项,都明确的文字说明。附上一段图片上传的配置吧:

    /* 上传图片配置项 */  
    "imageActionName": "uploadimage", /* 执行上传图片的action名称 */  
    "imageFieldName": "upfile", /* 提交的图片表单名称 */  
    "imageMaxSize": 2048000, /* 上传大小限制,单位B */  
    "imageAllowFiles": [".png", ".jpg",".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */  
    "imageCompressEnable": true, /* 是否压缩图片,默认是true*/  
    "imageCompressBorder": 1600, /* 图片压缩最长边限制 */  
    "imageInsertAlign": "none", /* 插入的图片浮动方式 */  
    "imageUrlPrefix": "", /* 图片访问路径前缀 */  
    "imagePathFormat":"_images/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 
    

    如果你没有自己的文件管理服务器的话你可以直接修改 imageUrlPrefix 这个属性,也就是域名就可以了,他会创建一个文件夹来保存你上传的文件,你也可以修改他的imagePathFormat 属性来修改他的路径

  5. 你如果觉得界面功能太多想去掉一些的话可以自定义界面的。只要在ueditor/ueditor.config.js的toolbar中删改配置即可,代码如下:他的代码如下:

    //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的从新定义  
    toolbars: [[   
               'fullscreen', 'source', '|', 'undo', 'redo', '|',   
               'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',   
               'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',   
               'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',   
               'directionalityltr', 'directionalityrtl', 'indent', '|',   
               'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',   
               'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',   
               'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'pagebreak', 'template', 'background', '|',   
               'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',   
               'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',   
               'searchreplace', 'help', 'drafts'   
           ]]  那些自己觉得不需要的去掉就行了
    

  6. 如果图片,文件等有自己的文件系统的话,这个时候就需要拦截所有文件上传的请求然后独立处理 代码如下;

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <script type="text/javascript" charset="utf-8" src="${root}/ueditor/ueditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="${root}/ueditor/ueditor.all.min.js"> </script>
    <script type="text/javascript" charset="utf-8" src="${root}/ueditor/lang/zh-cn/zh-cn.js"></script>
    <script>
      UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
      UE.Editor.prototype.getActionUrl = function(action) {
        if (action == "uploadimage" || action == "uploadscrawl" || action == "listimage" || action == "catchimage") {
            return "${root}/upload/ue"
        } else {
          return this._bkGetActionUrl.call(this, action);
        }
      }
    </script>
    

    该文件的关键,拦截所有上传请求然后后台写一个Control处理该处的文件。

    贴下后台请求的处理代码:

    @PostMapping("/ue")@ResponseBody
        public String ueUploadFile(HttpServletRequest request, @RequestParam("upfile") MultipartFile multipartFile) throws IOException {
            try {
                Map<String,String> map = Maps.newHashMap();
                UploadResult uploadResult = baseFileService.upload(multipartFile.getBytes(),multipartFile.getOriginalFilename(),"uEditor",map);
                if (uploadResult != null) {
                    UploadFileVo uploadFileVo  = new UploadFileVo();
                    uploadFileVo.setOriginal(multipartFile.getOriginalFilename());
                    uploadFileVo.setState("SUCCESS");
                    uploadFileVo.setSize(multipartFile.getSize()+"");
                    uploadFileVo.setTitle(multipartFile.getName());
                    uploadFileVo.setUrl(qa_manage_url + uploadResult.getGroup() + "/" + uploadResult.getFileName());
                    return JSON.json(uploadFileVo);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
    }
    

    其实这里主要是返回的对象属性名要跟Ueditor里面的名字一样

    我建的实体类属性如下
    private String state ;
    
        private String title ;
    
        private String original;
    
        private String type;
    
        private String url;//文件路劲Ueditor是识别这个属性的
    
        private String size;
    

    以上就是Ueditor基本上手使用



猜你喜欢

转载自blog.csdn.net/lafengwnagzi/article/details/78830578
今日推荐