coding++:快速构建 kindeditor 富文本编辑器(一)

此案例 demo 为 SpringBoot 开发

1、官网下载相关资源包:http://kindeditor.net/down.php

2、编写页面(引入相关JS)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>kindeditor富文本编辑器</title>
    <link href="/kindeditor-4-1-10/themes/default/default.css" type="text/css" rel="stylesheet">

    <script type="text/javascript" charset="utf-8" src="/jquery-3.2.0.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/kindeditor-4-1-10/kindeditor-all-min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/kindeditor-4-1-10/lang/zh_CN.js"></script>
    <script type="text/javascript" charset="utf-8" src="/kindeditor-Own/kindeditor.js"></script>

</head>
<body>
  <textarea id="itemAddForm" style="width:800px;height:300px;visibility:hidden;" name="desc"></textarea>
</body>
</html>

3、编写 JS(/kindeditor-Own/kindeditor.js) 创建实例

var itemAddEditor;
//页面初始化完毕后执行此方法
$(function () {
    var TT = TTO = {
        // 编辑器参数
        kingEditorParams: {
            //指定上传文件参数名称
            filePostName: "uploadFile",
            //指定上传文件请求的url。
            uploadJson: ‘/pic/upload‘,
            //上传类型,分别为image、flash、media、file
            dir: "image"
        },
        createEditor: function (select) {
            return KindEditor.create(select, TT.kingEditorParams);
        }
    };
    //创建富文本编辑器
    itemAddEditor = TTO.createEditor("#itemAddForm");
});

4、编写后台 配置虚拟路径(MyWebAppConfiguration)

package com.editors.kindeditor.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MyWebAppConfiguration extends WebMvcConfigurerAdapter {

    /**
     * 添加一些虚拟路径的映射
     * 静态资源路径和上传文件的路径
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        /**
         * @Description: 对文件的路径进行配置, 创建一个虚拟路径/Path/** ,即只要在< img src="/Path/picName.jpg" />便可以直接引用图片
         *这是图片的物理路径  "file:/+本地图片的地址"
         */
        registry.addResourceHandler("/Path/**").addResourceLocations("file:/C:/Users/lenovo/AppData/Local/Temp/tomcat-docbase.2975979620477460781.8080/upload/");
        super.addResourceHandlers(registry);
    }

}

5、图片上传服务

package com.editors.kindeditor.controller;

import com.editors.utils.JsonUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.HashMap;
import java.util.Map;

@Controller
public class KindeditorController {

    @RequestMapping("/kindeditor")
    public String kindeditor() {
        return "kindeditor/kindeditor";
    }

    /**
     * 返回 复杂类型 容易产生浏览器兼容性问题
     * 原因:
     * 跟 @ResponseBody 默认行为有关
     * String类型可直接打回页面,而复杂类型无法直接打回,需要先转换为json
     */
    @RequestMapping("/pic/upload")
    @ResponseBody
    public String picUpload(MultipartFile uploadFile, HttpServletRequest request) {
        Map map = new HashMap<>();
        if (!uploadFile.isEmpty()) {
            String saveFileName = uploadFile.getOriginalFilename();
            File saveFile = new File(request.getSession().getServletContext().getRealPath("/upload/") + saveFileName);
            if (!saveFile.getParentFile().exists()) {
                saveFile.getParentFile().mkdirs();
            }
            String path = "/Path/" + saveFileName;
            System.out.println("path={" + path + "}");
            try {
                BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(saveFile));
                out.write(uploadFile.getBytes());
                out.flush();
                out.close();
                map.put("error", 0);
                map.put("url", path);
            } catch (Exception e) {
                e.printStackTrace();
                map.put("error", 1);
                map.put("url", path);
                return "上传失败," + e.getMessage();
            }
        } else {
            map.put("error", 1);
            map.put("url", "上传失败,因为文件为空.");
        }
        return JsonUtils.objectToJson(map);
    }

}

6、执行效果:

原文地址:https://www.cnblogs.com/codingmode/p/11423250.html

时间: 2024-10-29 00:24:31

coding++:快速构建 kindeditor 富文本编辑器(一)的相关文章

django项目中使用KindEditor富文本编辑器

先从官网下载插件,放在static文件下 前端引入 <script type="text/javascript" src="/static/back/kindeditor/kindeditor-all.js"></script> <script> KindEditor.ready(function (K) { window.editor = K.create('#content', { {# 加上这句话可以使jquery能获取到富

kindEditor 富文本编辑器 使用介绍

第一版:存放位置:  ---->把该创建的文件包放到javaWeb 过程的 WEB_INF 下:如图所示. 第二步:< kindEditor 插件的引用> :JS引用 1 <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all-min.js"></script> 2 <scrip

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富文本编辑器

用法参考:http://kindeditor.net/docs/usage.html  一.使用 . 修改HTML页面 在需要显示编辑器的位置添加textarea输入框. <textarea id="editor_id" name="content" style="width:700px;height:300px;"> <strong>HTML内容</strong> </textarea> 在该HT

KindEditor富文本编辑器, 从客户端中检测到有潜在危险的 Request.Form 值

在用富文本编辑器时经常会遇到的问题是asp.net报的”检测到有潜在危险的 Request.Form 值“一般的解法是在aspx页面   page  标签中加上 validaterequest='false'  但这样的话   既不安全 也不一定有效,好吧,说说我的解决方法吧, 就是在提交的时候不让富文本的内容提交,先是把内容编码给到一个隐藏标签,然后给富文本赋空值. 1 KindEditor.ready(function (K) { 2 Editor = K.create('#txtIntro

KindEditor - 富文本编辑器 - 使用+上传图片

效果: 项目结构: Extend:存放各种扩展 BlogAction.class.php:博文模块 addBlog.html:添加博文页面 Html代码: 只是用一个核心文件也可,也可以加入其他js文件,比如语言包,扩展包. addBlog.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti

MVC中提交包含HTML代码的页面处理方法(尤其是在使用kindeditor富文本编辑器的时候)

针对文本框中有HTML代码提交时,mvc的action默认会阻止提交,主要是出于安全考虑.如果有时候需求是要将HTML代码同表单一起提交,那么这时候我们可以采取以下两种办法实现: 1.给Controller的Action方法打上标记 [ValidateInput(false)](针对特定的action) 2.在web.config配置文件中<system.web>节中加入<httpRuntime requestValidationMode="2.0"/>(针对全

vue中使用kindeditor富文本编辑器2

第一步,下载依赖 yarn add kindeditor 第二步,建立kindeditor.vue组件 <template> <div class="kindeditor"> <textarea :id="id" name="content" v-model="outContent"></textarea> </div> </template> <s

domino集成kindeditor富文本编辑器