开发环境:一个简单的SpringMVC框架中,用百度富文本编辑器 ueditor 实现图片和文件的上传

官网地址:http://ueditor.baidu.com/website/

需要使用到的2个文件如下(官网上下载):
1,ueditor1_4_3_3-utf8-jsp.zip
2,ueditor1_4_3_3-src.zip(源码包)

SpringMVC框架搭建,我这里就不说了,注意下spring配置静态资源目录的时候,如果上传的图片是放在根目录下的话

需要在spring配置文件中加入:

<mvc:resources location="/ueditor/" mapping="/ueditor/**"></mvc:resources><!--这个是图片目标,是位于根目录,是在服务器中,而非是assets--->

也可以用另外一种方式,就是在编辑器的配置文件中更改图片保存的目录位置;

第一步:把下载下来的2个压缩文件解 放入到项目中:

解压会得到一个utf-8-jsp的文件夹,重命名为ueditor方便理解(这个名称可以随意:基本工作开发中的资源目录都是放入assets目录中,)

解压源码包得到的ueditor-1.4.3.3里面有一个jsp目录,进入C:\Users\92307\Desktop\ueditor-1.4.3.3\jsp\src 下,把com文件夹复制

到项目的java代码中:结构如下图所示

第二步:接下来就是配置ueditor到项目中了

1、后台写一个接收方法,复制下面代码即可:(可以参考assets/ueditor/jsp/controller.jsp)

/**
* 百度富文本编辑器:图片上传
* @param request
* @param response
*/
@RequestMapping("/upload")
public void imgUploadByUeditor(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding( "utf-8" );
response.setHeader("Content-Type" , "text/html");
ServletContext application=request.getServletContext();
String rootPath = application.getRealPath( "/" );
PrintWriter out = response.getWriter();
out.write( new ActionEnter( request, rootPath ).exec() );
}

接下来修改config.json文件的目录(在ueditor源码中)

打开项目中src\com\baidu\ueditor\ConfigManager.java

修改第28行 configFileName="/assets/ueditor/jsp/config.json"

private static final String configFileName = "/assets/ueditor/jsp/config.json";

一般公司都会有自己的项目名,可以在 config.json 中 添加 图片、文件……上加上 访问前缀,但如果服务器有几个,就比较麻烦,

所以推荐使用在configManager.java的initEvn方法中修改:如下所示

private void initEnv () throws FileNotFoundException, IOException {
File file = new File( this.originalPath );
if ( !file.isAbsolute() ) {//不是绝对路劲
file = new File( file.getAbsolutePath() );
}
this.parentPath = file.getParent();
String configContent = this.readFile( this.getConfigPath().replace( "\\", "/" ) );
try{
JSONObject jsonConfig = new JSONObject( configContent );
//下面是手动修改配置文件的前缀
if(!StringUtils.isEmpty(this.contextPath)){
jsonConfig.put("imageUrlPrefix",this.contextPath);//图片
jsonConfig.put("scrawlUrlPrefix",this.contextPath);//涂鸦
jsonConfig.put("snapscreenUrlPrefix",this.contextPath);//截图
jsonConfig.put("catcherUrlPrefix",this.contextPath);//抓取远程图片配置
jsonConfig.put("videoUrlPrefix",this.contextPath);//上传视频配置
jsonConfig.put("fileUrlPrefix",this.contextPath);//上传文件
jsonConfig.put("imageManagerUrlPrefix",this.contextPath);//列出指定目录下的图片
jsonConfig.put("fileManagerUrlPrefix",this.contextPath);//列出指定目录下的文件
}
this.jsonConfig = jsonConfig;
} catch ( Exception e ) {
this.jsonConfig = null;
}
}

后台的配置 弄完了,接下来弄下前端的配置就ok了

第三步:打开assets/ueditor/ueditor.config.js文件

    window.UEDITOR_HOME_URL =ctx+"/assets/ueditor/";
var URL = window.UEDITOR_HOME_URL || getUEBasePath(); /**
* 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。
*/
window.UEDITOR_CONFIG = { //为编辑器实例添加一个路径,这个不能被注释
UEDITOR_HOME_URL: URL // 服务器统一请求接口路径
, serverUrl: ctx+"/upload"//这个是后台请求的路径,与上面的action对应,其中的ctx 是在引入富文本编辑器的也没中定义的,等于var ctx='${pageContext.request.contextPath}'

修改 \assets\ueditor\jsp\config.json 文件

在所有的上传保存文件路径中 都加入一个前缀 /assets  如下图所示:

第三步;其实就是删除多余的文件,比如ueditor.jar可以删除,因为我们导入了源码,然后*min.js都可以删除,controller.jsp 也到删除掉,index.html可以保留
方便今后查看编辑器的构造函数 第四步;页面引入百度富文本编辑器方法:
<script>
var ctx = '${ctx}';</script>
<!--百度编辑器--->
<script type="text/javascript" charset="utf-8" src="${ctx}/assets/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="${ctx}/assets/ueditor/ueditor.all.js"> </script>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<script type="text/javascript" charset="utf-8" src="${ctx}/assets/ueditor/lang/zh-cn/zh-cn.js"></script>
<script>
var ue = UE.getEditor('editor');
</script>
<div>
<script id="editor" type="text/plain" style="width:100%;height:400px;"></script>
</div>

--------------------------

补充:如果自定义文件上传,则,返回给编辑器的数据结构如下:

{
"state": "SUCCESS",
"original": "80px - \u526f\u672c (2).jpg",
"size": "13252",
"title": "1465731377326075274.jpg",
"type": ".jpg",
"url": "/ueditor/jsp/upload/image/20160612/1465731377326075274.jpg"
}
---------------------

JAVA 集成 Ueditor 百度富文本编辑器的更多相关文章

  1. UEditor百度富文本编辑器--让编辑器自适应宽度的解决方案

    UEditor百度富文本编辑器的initialFrameWidth属性,默认值是1000. 不能够自适应屏幕宽度.如图1: 刚开始的时候,我是直接设置initialFrameWidth=null的.效 ...

  2. UEditor 百度富文本编辑器 .Net实例

    转自 http://download.csdn.net/download/hdsslxl/6740605 1.UEditor 百度富文本编辑器完整版 .Net实例 已解决上传图片问题. 2.内附完整d ...

  3. UEditor百度富文本编辑器--preview在线预览时头部被挡住的解决方案

    问题截图: 正常情况应该是如下显示: 解决方案: 1.打开ueditor/dialogs/preview/preview.html 2.找到body节点下面这一句 document.getElemen ...

  4. 百度富文本编辑器ueditor在jsp中的使用(ssm框架中的应用)

    折腾了一下午终于把百度富文本编辑器ueditor搞定了!   项目地址:https://github.com/724888/lightnote_new     首先我参考了一个ueditor的demo ...

  5. vue集成百度富文本编辑器

    1.前期工作,访问百度富文本官网下载相应的百度富文本文件,根据后端用的技术下载相应的版本,建议下载最新版UTF-8版 (有图有真相,看图) https://ueditor.baidu.com/webs ...

  6. 百度富文本编辑器UEditor安装配置全过程

    网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式     你可以去百度UEditor ...

  7. 百度富文本编辑器ueditor使用总结

    最近做的项目用到了ueditor这个东东,但是他的一些配置文档对初次使用者来说很难以理解,故作此总结 相关详细操作链接地址: http://blog.csdn.net/wusuopubupt/arti ...

  8. Html引入百度富文本编辑器ueditor

    在日常工作用,肯定有用到富文本编辑器的时候,富文本编辑器功能强大使用方便,我用的是百度富文本编辑器,首先需要下载好百度编辑器的demo, 然后创建ueditor.html文件,引入百度编辑器,然后在h ...

  9. Jfinal整合百度富文本编辑器ueditor

    ueditor配置文件ueditor.config.js修改参数serverUrl:(改为要调用的action) 后台代码 package com.sandu.mega.admin.ueditor; ...

随机推荐

  1. C#调用python脚本

    因项目需要,需要使用C#控制台程序执行python脚本,查询各种资料后可以成功调用了,记录一下,以备后面遗忘. 只尝试了两种调用方式,第一种只适用于python脚本中不包含第三方模块的情况,第二种针对 ...

  2. C#二进制序列化和反序列化

    public class WRSerializable { public static void SerializeToFile<T>(T _description, string _fi ...

  3. OpenCV学习笔记十九:opencv_gpu*模块

    一,简介: 基于GPU加速的opencv算法库.

  4. Jqurey实现相似EasyUI的页面布局

    截图例如以下:(可通过移动中间蓝色的条.来改变左右两边div的宽度) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFuZ21pbmd4aW5nOTgw ...

  5. 第四篇:了解 C++ 默默编写并调用的函数

    前言 对于一个类来说,最最基础的三类成员函数莫过于:构造函数,析构函数以及拷贝函数 (copy构造函数和=重载函数).即使你的类没有为这些函数做出定义,C++ 也会自动为你创建.本文将讲述的是 C++ ...

  6. 多个 python的pip版本选择

    如果你电脑里面装了多个版本的python python3 -m pip instatll xlutilspython2 -m pip instatll xlutils 加载新的pippython -m ...

  7. 事务处理笔记《一》ADO.NET级别的事务

    现在我们对事务的概念和原理都有所了解了,并且作为已经有一些基础的C#开发者,我们已经熟知编写数据库交互程序的一些要点,即: (1)使用SqlConnection类的对象的Open()方法建立与数据库服 ...

  8. codevs1068 乌龟棋==洛谷P1541 乌龟棋

    P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家 ...

  9. zookeeper 命令行使用

    先用简易的客户端链接上 默认链接的就是本机上面的zkserver 我一上来help 下.没办法 ,用的少,先喊一声救命 ,看看有没有人救我! [zk: localhost:2181(CONNECTED ...

  10. Python菜鸟之路:DOM基础

    前言 DOM 是 Document Object Model(文档对象模型)的缩写,定义了访问和操作 HTML 文档的标准方法.DOM把网页和脚本以及其他的编程语言联系了起来.DOM属于浏览器,而不是 ...