先上图,没图差不多就看不下去的,我懂!

来个毛爷的,看着好像就能发财一样。。。。

首先下载必要的文件和jar包:http://download.csdn.net/detail/xb12369/9516909

代码的结构:

1. 【资源文件】解压zip文件,将editor复制到项目的的webapps目录下。

2. 【jar包】将kindeditor/jsp/lib目录下的3个jar文件复制到Tomcat的lib目录下,并重新启动Tomcat。
* commons-fileupload-1.2.1.jar
* commons-io-1.4.jar
* json_simple-1.1.jar

3. 配置路径:

//文件保存目录路径
//String savePath = pageContext.getServletContext().getRealPath("/") + "attached/";
String savePath = (String)request.getAttribute("tempDir");

//文件保存目录URL
//String saveUrl  = request.getContextPath() + "/attached/";
String saveUrl  = request.getContextPath() + (String)request.getAttribute("imgDir");

这里有个说明:如果request.getAttribute不作类型转换的话,会报错的!即(String)request.getAttribute("imgDir");

4,根据自己对应的上传方式修改对应的上传部分的代码:

这是我的上传代码:

/*****************开始改造成自己的上传方法************************************/
DefaultMultipartHttpServletRequest multipartRequest = (DefaultMultipartHttpServletRequest)request;
if (multipartRequest != null) {Iterator<String> itr = multipartRequest.getFileNames();while (itr.hasNext()) {MultipartFile img = multipartRequest.getFile(itr.next().toString());String fileName = img.getOriginalFilename();//检查扩展名String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){out.println(getError("上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"));return;}SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;try{InputStream in = img.getInputStream();FileOutputStream fs = new FileOutputStream(savePath+newFileName);  byte[] buffer = new byte[1024 * 1024];int byteread = 0;  while ((byteread = in.read(buffer)) != -1) {fs.write(buffer, 0, byteread);  }  fs.close();  in.close(); }catch(Exception e){out.println(getError("上传文件失败。"));return;} JSONObject obj = new JSONObject();obj.put("error", 0);obj.put("url", saveUrl + newFileName);out.println(obj.toJSONString());}

提供的上传方式:

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
List items = upload.parseRequest(request);
Iterator itr = items.iterator();
while (itr.hasNext()) {FileItem item = (FileItem) itr.next();String fileName = item.getName();long fileSize = item.getSize();if (!item.isFormField()) {//检查文件大小if(item.getSize() > maxSize){out.println(getError("上传文件大小超过限制。"));return;}//检查扩展名String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){out.println(getError("上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"));return;}SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;try{File uploadedFile = new File(savePath, newFileName);item.write(uploadedFile);}catch(Exception e){out.println(getError("上传文件失败。"));return;}JSONObject obj = new JSONObject();obj.put("error", 0);obj.put("url", saveUrl + newFileName);out.println(obj.toJSONString());}
}

5、空格处理,如果不对某些特殊符号做特殊处理的话,会导致html代码丢失

存储的时候:

private String htmlspecialchars(String str) {str = str.replaceAll("&", "&");str = str.replaceAll("<", "<");str = str.replaceAll(">", ">");str = str.replaceAll("\"", """);return str;}
content = htmlspecialchars(content);if(!StringUtils.isEmpty(id)){Map<String, Object> map = new HashMap<String, Object>();map.put("content", content);this.activityInfoService.modify(id, map);}

取出来的时候:

private String htmlspecialchars(String str) {str = str.replaceAll("&", "&");str = str.replaceAll("<", "<");str = str.replaceAll(">", ">");str = str.replaceAll(""", "\"");//图片懒加载处理//<img  class="scrollLoading" data-url="http://7xlv3q.com2.z0.glb.qiniucdn.com${item.img }" src="<%=request.getContextPath()%>/easyui/app_h5/activity/images/grey.gif" >//<img src="/imgs/image/20160511/20160511162627_319.jpg" alt="" /> str = str.replaceAll("src=", "data-url=").replaceAll("alt=\"\"", "class=\"scrollLoading\" src=\"<%=request.getContextPath()%>/easyui/app_h5/activity/images/grey.gif\"");return str;}
request.setAttribute("content", htmlspecialchars(info.getContent()));

good luck~

java常用的编辑器之kindeditor相关推荐

  1. 编辑器之神—Vim 常用快捷键

    以下是 "编辑器之神" - Vim 常用快捷键 . 学好vi, 无论用哪个IDE,只需下载一个vim的插件, 在哪里都可以使用! 前言         Vim 的三种工作模式 vi ...

  2. java 协作编辑,在线协作编辑器之周报收集

    在线协作编辑器之周报收集 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本 ...

  3. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  4. xshell vim 不能粘贴_编辑器之神——vim的入门指南

    编辑器之神--Vim的操作说明 ©作者:geekctwd Vim命令模式: Vim虽然被称为编辑器之神,但是很多接触过的人都说入门较难,原因是什么呢,除了vim繁杂的按键之外就是因为它的模式了,很多初 ...

  5. Java常用设计模式————原型模式(一)

    介绍 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. 原型模式用于创建重复的对象,同时又能保证性能.当直接创建对象的代价比较大时,则采用 ...

  6. java常用英语单词

    abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.riem] annotat ...

  7. JAVA常用英语汇总(献给所有英语基础差的同学)

    abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.riem] annotat ...

  8. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一 ...

  9. 拒绝选择恐惧症!国内好用的Markdown编辑器之有道云笔记

    拒绝选择恐惧症!国内好用的Markdown编辑器之有道云笔记 什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitHub ...

  10. 11、java常用单词(转载)

    abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.riem] annotat ...

最新文章

  1. 傅里叶卷积实现「万物隐身」,这个神器可试玩
  2. 秀尔算法:破解RSA加密的“不灭神话” --zz
  3. python处理csv文件案例_让繁琐的工作自动化——python处理CSV文件
  4. dijkstra标号法表格_标号法求最短路径例题详解.ppt
  5. 3dmax java_Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能
  6. 18 张图彻底弄懂 HTTPS 的原理!
  7. 年薪百万架构师首次分享 Java 程序员黄金 5 年进阶心得!
  8. java_home not found in your enviroment 问题解决方法
  9. 系统内存太少,VirtualBox无法启动虚拟机
  10. C语言的数组简单复习
  11. NVivo for Mac中的编码难理解?这6个视频帮助你!
  12. 4G-LTE技术总结
  13. 联想Y40加装固态硬盘
  14. 生产环境RedisCPU飙高怎么办
  15. 兵临城下 (深度搜索)
  16. 屠蛟之路_重伤的屠蛟俊_ThirdDay
  17. Golang mgo 剖析之 Session
  18. 引流复盘:从知乎引流20万粉,我只用了1个月
  19. CRC校验值是如何计算出来的?
  20. 天猫精灵实现误无醒词推送断网负载播报

热门文章

  1. Geometric Transformation(几何变换)
  2. ps的切片用来转换html,Photoshop切片导出HTML+CSS
  3. WIN7 安装使用远程服务器管理工具-如DHCP、AD域、HyperV、远程桌面
  4. 可决系数、相关系数、均方误差
  5. linux os版本 32或64位查看
  6. 华为服务器电源性能指标,华为服务器可服务性设计介绍-电源篇.PDF
  7. mysql操作基础知识
  8. Origin的基础实验数据处理
  9. 计算器(Java)课设
  10. 信息系统项目管理师2018年上半年下午案例分析题及答案