前言

官方网站https://fex.baidu.com/ueditor/

1. 安装Ueditor

  • 前往官网下载,选择发布版
  • 选择合适的版本,如 utf8-jsp
  • 下载,解压后目录结构如下

使用前配置

  • 进入jsp/lib目录
  • 在本地Maven仓库安装 ueditor jar包(如果没有使用Maven管理jar的话,需要将jar包加入项目依赖中)。
cd 目录
# 安装
mvn install:install-file -Dfile=ueditor-1.1.2.jar -DgroupId=com.baidu -DartifactId=ueditor -Dversion=1.1.2 -Dpackaging=jar
  • 打开项目,将 utf-jsp 目录下所有内容复制到某个静态资源目录。如我这里将资源放在ueditor下。

  • 配置ueditor资源根路径(注意:这里需要根据自己的项目的classpath情况来设置)

测试使用

参考官网https://fex.baidu.com/ueditor/#start-start

  • 创建index文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><!-- 加载编辑器的容器 --><script id="container" name="content" type="text/plain">这里写你的初始化内容</script><!-- 配置文件 --><script type="text/javascript" src="/ueditor.config.js"></script><!-- 编辑器源码文件 --><script type="text/javascript" src="/ueditor.all.js"></script><!-- 实例化编辑器 --><script type="text/javascript">var ue = UE.getEditor('container');</script></body>
</html>


访问:localhost:8080/index.html 试一试

测试图片上传

这里Ueditor中的图片上传配置文件不知道为什么,解析起来有问题。


自定义解析config.json和图片上传的方法

尝试自定义解析config.json和图片上传的方法

  • 参考 controller.jsp文件


  • 能够看出 ActionMap中的key 即是 /jsp/controller.jsp?action=param 的参数。

  • 知道这一点,加上controller.jsp中的ActionEnter中的一下方法作为参考,我们就可以开始重现我们自定义的方法了

  • 编写自定义方法 代替 /jsp/controller?action=param方法


package com.bmos.ueditor.controller;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;/*** @Author: l* @Date: 2022/3/25 13:19* @Description:*/
@Controller
@RequestMapping("/ueditor")
public class UeditorController {@RequestMapping("/invoke")public void handle(MultipartFile upfile, HttpServletRequest request, HttpServletResponse response) throws JsonProcessingException {//        response.setCharacterEncoding("utf-8");
//        response.setContentType("text/html");//1.获取action参数String action = request.getParameter("action");String result = null;//2.根据action做出相应的处理if ("config".equals(action)){// 2.1 处理读取配置文件// 我们可以将ueditor/jsp/config.json拿到我们放置配置文件的位置,如这里我将其放到resource下(最好改一下名字)//2.2 读取config.json//InputStream inputStream = UeditorController.class.getResourceAsStream("/ueditor-config.json");//InputStreamReader reader = new InputStreamReader(inputStream);//BufferedReader br = new BufferedReader(reader);StringBuilder configContent = new StringBuilder();try (BufferedReader br = new BufferedReader(new InputStreamReader(UeditorController.class.getResourceAsStream("/ueditor-config.json")))){String line = null;while ((line = br.readLine()) != null){configContent.append(line);}} catch (IOException e) {e.printStackTrace();}// 过滤输入字符串, 剔除多行注释以及替换掉反斜杠result = configContent.toString().replaceAll("/\\*[\\s\\S]*?\\*/", "").replaceAll(" ", "");}else if("uploadimage".equals(action)){//2.2 处理上传图片//参考ActionEnter invoke()方法 Uploader.doExec 其反回值格式应为:/*** 以UTF8编码为例:* {*     "state" : AppInfo.info中的某个值,如 true-对应的AppInfo.info的key为0,值为SUCCESS*     “size”  :  targetFile.length()*     "title" : targetFile.getName()*     //下面这些只有成功才有*     “url”: PathFormat.format(savePath)*     “type”: suffix*     "original" : originFileName + suffix* }*/Map<String, Object> resultMap = new HashMap<>();ObjectMapper om = new ObjectMapper();try {//获取文件名String originalFilename = upfile.getOriginalFilename();//获取后缀String suffix = originalFilename.substring(originalFilename.indexOf(".") + 1 ,originalFilename.length());// 拼接文件名 我这里启用了一个文件服务器String realFilePath ="C:/wguo/docker-volums/tomcat/webapps/ROOT/";String url = "image/"+ DateFormatUtils.format(new Date(), "yyyy-MM-dd")+"/" + System.currentTimeMillis()+"."+suffix;File realFile = new File(realFilePath+url);if(!realFile.getParentFile().exists()){//文件夹路径不存在就新建一个realFile.getParentFile().mkdirs();}//上传文件服务器,这里就这一个服务,有条件可以重新建一个专门的文件服务器upfile.transferTo(realFile);resultMap.put("state", "SUCCESS");resultMap.put("size", upfile.getSize());resultMap.put("title", originalFilename);resultMap.put("url", "http://127.0.0.1:58080"+"/" + url);resultMap.put("title", suffix);resultMap.put("original", originalFilename);result = om.writeValueAsString(resultMap);} catch (IOException e) {e.printStackTrace();resultMap.put("state", "IO错误");result = om.writeValueAsString(resultMap);}}PrintWriter writer = null;try {writer = response.getWriter();writer.write(result);writer.flush();} catch (IOException e) {e.printStackTrace();}finally {writer.close();}}
}

Ueditor 使用相关推荐

  1. 【PHP+JS】uploadify3.2 和 Ueditor 修改上传文件 大小!!

    一.写在最开始: 前提条件:服务器php.ini 已经修改了变量[ upload_max_filesize ],可以设定为8M,一般8M足够用了.(重启) 1.uploadify3.2 修改文件大小: ...

  2. thinphp 整合ueditor

    我的ueditor是部署在public/editor 部署前台页面 <script type="text/javascript" > var UEDITOR_HOME_ ...

  3. Ueditor和CKeditor 两款编辑器的使用与配置

    一丶ueditor 百度编辑器 1.官方文档,演示,下载地址:http://ueditor.baidu.com/website/index.html 2.百度编辑器的好:Editor是由百度web前端 ...

  4. ueditor与七牛云存储结合

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:  ueditor与七牛云存储结合,主要是表单api. ueditor上传图片到七牛云存储 ueditor结合七牛传图片 ...

  5. ueditor php 附件,ueditor单独调用上传附件和图片的功能

    第一步, 引入文件 第二步 html元素 调用的页面: 上传图片 上传文件 第三步 编写js代码 var _editor; $(function() { //重新实例化一个编辑器,防止在上面的edit ...

  6. 解决Chrome中UEditor插入图片的选择框加载过慢问题

    解决Chrome中UEditor插入图片的选择框加载过慢问题 ../resources/plugins/ueditor/ueditor.all.js 中line24489/24498中的 accept ...

  7. 关于百度编辑器UEditor在asp.net中的使用方法!

    为了完成自己想要的功能效果,在项目中使用到了百度编辑器,为了搞明白,苦心学习查资料搞了整整一天,总结一下. 在asp.net 的项目中目前我觉得有两种情况,一种是没有使用模板页的,一种是使用了模板页的 ...

  8. ueditor编辑器和at.js集成

    源码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&qu ...

  9. 百度UEditor开发案例(JSP)

    本案例的开发环境:MyEclipse+tomcat+jdk 本案例的开发内容: 用百度编辑器发布新闻(UEditor的初始化开发部署) 编辑已发过的新闻(UEditor的应用--编辑旧文章) 上传附件 ...

  10. laravel-admin集成ueditor编辑器的图片列表显示问题解决方法

    laravel-admin集成ueditor推荐使用laravel-u-editor,它是ueditor的laravel composer版本.基于UEditor 1.4.3.3开发,支持en.zh_ ...

最新文章

  1. ——————————————————————————————————1203————————————————————————————————...
  2. 经典DP 嵌套矩形 (南洋理工ACM—16)
  3. android布局的作用,Android UI布局经验总结
  4. wxWidgets:wxPixelData< Image, PixelFormat >类模板用法
  5. 58同城沈剑:好的架构是进化来的,不是设计来的
  6. python中eps参数_2019-01-23 python PIL 编辑 EPS 文件调整大小并拼接-失败告终
  7. 知道ThreadLocal吗?一起聊聊到底有啥用
  8. 《常微分方程教程》习题2.3.6
  9. eclipse 改包名
  10. 中国月度、年度NDVI/植被覆盖空间分布数据分享(1986-2021)
  11. php 递归的简单使用
  12. StikyNotes便签软件
  13. Ambari2.7.4配置HIVE_AUX_JARS_PATH
  14. H5调起摄像头拍照上传
  15. FL Studio20.9序列号账户注册教程
  16. JS对DOM节点的操作--增加节点,删除节点
  17. MMDetection(三):公开数据集上测试和训练模型
  18. VSCode打开.c文件出现中文乱码解决办法
  19. TOJ 2977.Eight
  20. 固态硬盘与普通硬盘的区别

热门文章

  1. lda 协方差矩阵_LDA算法详解
  2. 刷重庆高校网课的方法
  3. Part I. S1. 模糊集及其运算
  4. java递归 杨辉三角_java杨辉三角递归实现
  5. Kerberos下pyhive使用
  6. 车辆等级、车型分类及carsim内置车辆种类整理
  7. 【网络安全学习笔记3】侧信道攻击以及技术概览
  8. linux怎样使用小米线刷工具,在linux上怎么样线刷小米手机
  9. 吴恩达深度学习第一周课程学习笔记
  10. Python编写杨辉三角形