SpringBoot 配置富文本编辑器 xheditor

一年前写过一篇:struts2 配置 xheditor 的文章。那时候还在用ssh,现在开始用spring boot。本来想配置CSDN的markdown编辑器的,可惜在github上找不到。所以,还是用回轻巧的xheditor吧。

环境要求:Spring Boot v1.5.1.RELEASE、jdk1.7、myeclipse2015 、xheditor1.1.14

xheditoe的官网好像下不了,我把xheditor1.1.14的压缩包上传到资源那里了,点击进入xheditor1.1.14的下载页

下面是配置过程:

1).解压xheditor,在static目录下新建一个xheditor目录,将解压的文件通通放进去

2).在 templates 下新建一个html页面:blog.html

这里要注意两点:

<1> pageInit()里面的配置:html5Upload:false ,一定要设置为false,不然无法上传图片;

<2> upImgUrl:”/uploadimg” 的 /uploadimg 是异步上传图片的方法(下点会讲)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" >
<head>
    <meta name="keywords" content="keyword1,keyword2,keyword3"></meta>
    <meta name="description" content="this is my page"></meta>
    <meta name="content-type" content="text/html; charset=UTF-8"></meta>
    <title>博客</title>
    <link rel="stylesheet" href="xheditor/common.css" type="text/css" media="screen" />
    <script type="text/javascript" src="xheditor/jquery/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="xheditor/xheditor-1.1.14-zh-cn.min.js"></script>
    <script type="text/javascript">
$(pageInit);
function pageInit()
{
    $.extend(xheditor.settings,{shortcuts:{‘ctrl+enter‘:submitForm}});
    $(‘#elm1‘).xheditor({tools:‘full‘,skin:‘default‘,internalScript:false,
    html5Upload:false, upImgUrl:"/uploadimg",upImgExt:"jpg,jpeg,gif,png"});
}
function submitForm(){$(‘#frmDemo‘).submit();}
</script>
</head>
<body>
    <textarea id="elm1" name="essaycontent" rows="40" cols="80" style="width: 80%"></textarea>
</body>
</html>

3).xheditor 的图片上传是异步的,即先把图片上传到服务器,服务器返回图片的路径回显。所以要专门写一个 controller 来处理图片上传,为了不和业务逻辑混淆,把这个专门处理图片上传的 controller 写在工具包中。有一点需要注意,返回给 xheditor 的message(json格式)中,有个 msg 的参数,xheditor 根据 msg 定位图片的路径,也就是说 msg 表示的是刚刚上传的图片存放的路径,文件名和路径要完整!比如:String msg = “/imgupload/” + newFileName; /imgupload/ 是存放图片的文件夹,newFileName 是UUID 改动过的文件名字。

package com.hsp.util;

import java.io.File;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class XheditorImgUpload {

    @RequestMapping(value = "/uploadimg", method=RequestMethod.POST)
    public @ResponseBody String imgUpload(HttpServletRequest request,
            @RequestParam MultipartFile filedata) {

        //System.out.println("filedata --> " + filedata);
        String filedataFileName = filedata.getOriginalFilename();
        //System.out.println("filedataFileName --> " + filedataFileName);
        String path = request.getSession().getServletContext().getRealPath("imgupload/");
        //UUID改文件名,避免文件名重复
        String newFileName=UUID.randomUUID().toString()+filedataFileName.substring(filedataFileName.indexOf("."),filedataFileName.length());
        String message;
        String err = "";
        String msg = "/imgupload/" + newFileName;
        //System.out.println("msg--->" + msg);
        try {
            FileUtil.uploadFile(filedata.getBytes(), path, newFileName);
        } catch (Exception e) {
            //err = e.getMessage();
        }
        message = "{\"err\":\"" + err + "\",\"msg\":\"" + msg
                + "\"}";
        err = message;
        return message;
    }

}

4).上传文件的实现方法:FileUtil.uploadFile(…)

public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
        File targetFile = new File(filePath);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        FileOutputStream out = new FileOutputStream(filePath+fileName);
        out.write(file);
        out.flush();
        out.close();
    }

5).设置文件上传的最大限制,在 application.properties 里面加:

spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=100Mb

6).测试

7).如果发生了错误,看看controller中 String msg = “/imgupload/” + newFileName; 有没有写全,有没有设置文件大小等等。

8).祝大家成功!

时间: 2024-10-29 05:10:28

SpringBoot 配置富文本编辑器 xheditor的相关文章

MVC富文本编辑器CKEditor配置CKFinder

富文本编辑器CKEditor的使用 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin:

富文本编辑器-ueditor基本配置

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码..相对于其他流行的富文本编辑器如ckeditor等具有配置简单.更具有中国特色!以下主要是涉及的内容是关于百度富文本编辑器的上传配置以及如何与struts2等结合问题. 1 版本问题 一般而言建议使用UMEditor版本,同时百度web前端开发部也提供了定制版本.如果使用定制版本要注意的一点就是将工具栏的图标添加上分割线!分割线添加的方法如下就

ASP.NET网站使用Kindeditor富文本编辑器配置步骤

1. 下载编辑器 下载 KindEditor 最新版本,下载页面: http://www.kindsoft.net/down.php 2. 部署编辑器 解压 kindeditor-x.x.x.zip 文件,将editor文件夹复制到web目录下  3.在网页中加入(ValidateRequest="false") 1 <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest=

富文本编辑器kindeditor配置

<!--富文本编辑器kindeditor配置↓ --> <link type="text/css" rel="stylesheet" href="kindeditor/themes/default/default.css" /> <link rel="stylesheet" href="kindeditor/plugins/code/prettify.css" /> &l

富文本编辑器CKEDITOR的使用配置(问题注解)

CKEDITOR是一款非常轻便的富文本编辑器,如上图:参考网上的使用方法,我以.net为例,在aspx页面使用, 准备工作:首先要下载控件包,将解压后的整个文件夹添加到项目根目录. 第一步:引用js, <script charset="utf-8" type="text/javascript" src="../ckeditor/ckeditor.js"></script> 第二步:放置服务器控件,<asp:TextB

富文本编辑器 CKeditor 配置使用 (带附件)

Ckeditor下载地址:http://ckeditor.com/download 1.CKeditor的基本配置 var textval=CKEDITOR.instances.TextArea1.getData(); //获取带HTML的值 var stemTxt=CKEDITOR.instances.TextArea1.document.getBody().getText();//获取纯文本 CKEDITOR.instances.TextArea1.setData(data.content)

富文本编辑器UEditor的配置使用方法

将下载的富文本编辑器的文件解压后放到 webcontent 下 如果 文件中的jsp文件夹下的controller.java文件报错的话    就将jsp下的lib文件夹中的文件都复制到  web-inf 文件夹下的lib中,就可以解决报错的问题了 按理说 还需要修改config.js中的URL值  但是我没修改  运行也出来效果了 <%@ page language="java" contentType="text/html; charset=utf-8"

Django 配置App特定类的富文本编辑器

版本:Django:1.6  Python:2.7 下载TinyMCE.http://www.tinymce.com/download/download.php 解压.将其中的tinymce文件夹放在Django的静态文件目录/static/下. 在tinymce文件夹中已经有tinymce.min.js这个JS文件:我们需要做的是在当前目录下(与tinymce.min.js同级)另外新建一个tinymce_config.min.js: 填充内容如下: tinymce.init({ select

北京赛车平台出租度富文本编辑器UEditor的改造

在Java项目中,做内容管理功能时,需要用到富文本编辑器北京赛车平台出租(www.1159880099.com)QQ1159880099,目前流行的富文本编辑器还是比较多的,因为项目中用的是百度的UEditor,所以对UEditor使用中的一些问题做个总结吧. 因为是Java项目所以使用的是只能选择jsp版本的UEditor,使用方式还是比较简单的,按照UEditor官方的文档来就好了. 首先说下踩过的坑,我项目一开始是用的war部署的方式,大家都知道war部署时是会解压到tomcat的weba