`

JSP中应用CKEditor在线编辑器

阅读更多

ckeditor的用法说明:

 

1.在head标签中引用ckeditor.js

 

 <script type='text/javascript' src="../static/plugins/editor/ckeditor.js"></script>

 

2.在页面中用textarea来进行引用(class="ckeditor"很关键,不能省略)

 

 <textarea class="ckeditor" id="question_content" name="question.questionContent" style="width: 970px" escape="true"></textarea>

 

3.屏蔽掉上传图片的时候“浏览服务器”功能

 

 打开ckeditor目录下的plugins\editor\plugins\image\dialogs\image.js文件,

 搜索第一个“browseServer”在其后面加上 ,style:'display:none' 可将“图像”选项卡“浏览服务器”功能屏蔽掉

 搜索第二个“browseServer”在其后面加上 ,style:'display:none' 可将“超链接”选项卡“浏览服务器”功能屏蔽掉

 

4.实现上传图片功能

 

(1)打开config.js,添加如下代码:

 

    var pathName = window.document.location.pathname;

    //获取带"/"的项目名,如:/uimcardprj

    var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);

 

 修改config.filebrowserImageBrowseUrl 和 config.filebrowserUploadUrl 的值分别为:

 config.filebrowserImageBrowseUrl = projectName+'/system/ckeditorUpload.action'; //(该路径为上传图片时请求的action路径)

 config.filebrowserUploadUrl = projectName+'/system/ckeditorUpload.action'; 

 

(2)在xwork.xml请求资源路径配置文件中加入以下配置

 

 <action name="ckeditorUpload" class="net.survey.util.CkeditorUpload">

   <interceptor-ref name="defaultStack" />

        <result name="success"></result>

     </action>

 

(3)根据action请求路径新建一个action类并让其继承ActionSupport基类,其中为实现上传图片的核心代码

 

 package net.survey.util;

 

 import java.io.File;

 import java.io.FileInputStream;

 import java.io.FileOutputStream;

 import java.io.InputStream;

 import java.io.OutputStream;

 import java.io.PrintWriter;

 import javax.servlet.http.HttpServletResponse;

 import com.opensymphony.webwork.ServletActionContext;

 import com.opensymphony.xwork.ActionSupport;

 

 public class CkeditorUpload extends ActionSupport {

 private File upload;  //文件

 

 private String uploadContentType;  //文件类型

 

 private String uploadFileName;   //文件名

 

 public File getUpload() {

  return upload;

 }

 

 public void setUpload(File upload) {

  this.upload = upload;

 }

 

 public String getUploadContentType() {

  return uploadContentType;

 }

 

 public void setUploadContentType(String uploadContentType) {

  this.uploadContentType = uploadContentType;

 }

 

 public String getUploadFileName() {

  return uploadFileName;

 }

 

 public void setUploadFileName(String uploadFileName) {

  this.uploadFileName = uploadFileName;

 }

 

 @Override

 public String execute() throws Exception {

  HttpServletResponse response = ServletActionContext.getResponse();  

  response.setCharacterEncoding("GBK");  

  PrintWriter out = response.getWriter();  

 

  // CKEditor提交的很重要的一个参数  

  String callback = ServletActionContext.getRequest().getParameter("CKEditorFuncNum");   

  String expandedName = "";  //文件扩展名  

  if (uploadContentType.equals("image/pjpeg") || uploadContentType.equals("image/jpeg")) {  

   //IE6上传jpg图片的headimageContentType是image/pjpeg,而IE9以及火狐上传的jpg图片是image/jpeg  

   expandedName = ".jpg";  

  }else if(uploadContentType.equals("image/png") || uploadContentType.equals("image/x-png")){  

   //IE6上传的png图片的headimageContentType是"image/x-png"  

   expandedName = ".png";  

  }else if(uploadContentType.equals("image/gif")){  

   expandedName = ".gif";  

  }else if(uploadContentType.equals("image/bmp")){  

   expandedName = ".bmp";  

  }else{  

   out.println("<script type=\"text/javascript\">");    

   out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)');");   

   out.println("</script>");  

   return null;  

  }  

 

  if(upload.length() > 600*1024){  

   out.println("<script type=\"text/javascript\">");    

   out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'文件大小不得大于600k');");   

   out.println("</script>");  

   return null;  

  }

 

  InputStream is = new FileInputStream(upload);

  String uploadPath = ServletActionContext.getServletContext().getRealPath("/upload/img");

  String fileName = java.util.UUID.randomUUID().toString();  //采用时间+UUID的方式随即命名  

  fileName += expandedName;  

  File toFile = new File(uploadPath, fileName);  

  OutputStream os = new FileOutputStream(toFile);     

  byte[] buffer = new byte[1024];     

  int length = 0;  

  while ((length = is.read(buffer)) > 0) {

   os.write(buffer, 0, length);     

  }    

  is.close();  

  os.close();  

 

  // 返回“图像”选项卡并显示图片  

  out.println("<script type=\"text/javascript\">");    

  out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",'" + "/minexplore/upload/img/" + fileName + "','')");    

  out.println("</script>");

 

  return null;

 } 

}

 

(4)为了能在webwork环境下识别 UploadContentType 和 UploadFileName 属性,需要在src下的webwork.properties中添加以下键值对

 

 ### character encoding

 webwork.i18n.encoding=gbk

 webwork.locale=zh_CN

 

 ### multipart setting

 webwork.multipart.saveDir=/tmp

 webwork.multipart.maxSize=2097152

 webwork.multipart.parser=jakarta

 

(5)为了能够实现图片上传,需要在所在的表单form标签中设置enctype="multipart/form-data"

0
1
分享到:
评论

相关推荐

    jsp中使用ckeditor

    jsp中使用ckeditor需要的jar包,js以及本人成功使用步骤

    jsp嵌入ckeditor编辑器的例子

    该事例主要演示了如何向jsp中嵌入ckeditor编辑器。注意首先要引入ckeditor资源库。上网就可以下载。下载下来之后将其放到webRoot目录下就可以了。

    JSP网页编辑器CKEditor含图片上传功能.rar

    JSP网页编辑器CKEditor含图片上传功能,本编辑器中含有一个本地图片自动上传插件,插件使用JAVA技术开发,需要配合JavaScript使用,可以将网页中含有的本地图片(src为'file:///')自动上传到服务器并修改img标签的...

    Ckeditor在线编辑器

    Ckeditor是一款强大的在线编辑器,缺点是对JSP上传图片功能不支持。本文对上传文件部分做一定修改,已经完善了上传功能。大家可以放心使用!

    ckeditor在线编辑器

    CKEditor 是一款功能强大的开源在线文本编辑器,可集成,可扩展,使用非常方便。 CKEditor 完全是基于 JavaScript 开发的,因此不必在客户端进行任何安装,并且兼容各大主流浏览器,比如:IE,Firefox,Chrome,...

    JSP下在线编辑器--CKeditor Ckfinder

    使用JSP实现在线编辑器,内容包括开发文档,配套源代码,ckeditor_4.1.1_full.zip和ckfinder_java_2.3.1.zip开发包。从如何下载开发包到实现CKeditor Ckfinder融合实现在线编辑器(代码已解决中文图片传输问题),...

    ckeditor配置上传视频

    最近项目开发需要用到CKEditor在线编辑器,但发现他本身没有自带,所以需要自己手动配置插件。但网上很多配置都有问题,自己摸索了好久终于搞定。需要注意的细节有:flvPlayer文件夹的内容直接放在ckeditor文件夹...

    ckeditor文本编辑器

    ckeditor文本编辑器,支持很多种工具栏。容易上手,已经在项目中用到了

    ckeditor编辑器使用

    Eclipse下配置CKEditor3.5.3+CKFinder2.0.2 FCKeditor 使用详解 Ckeditor与ckfinder整合forJAVA(支持文件上传) jsp ckeditor使用 很全面哦!值得收藏

    ckeditor4.0富文本编辑器

    项目jsp中应用到了富文本编辑器,所以就搞了一个ckeditor4.0版本,满足jsp开发的需要了

    CKEditor+CKFinder的jsp实例

    CKEditor+CKFinder的jsp实例

    运用CKEditor_Finder的在线编辑器

    这是简单的尝试运用CKEditor_Finder做成的在线编辑器,通常用于后台的操作,是一个第三方插件,把自己做的源码发出来,一起学习学习。。

    ckeditor_3.0.1的使用

    使用ckeditor_3.0.1在jsp界面中实现在线编辑的功能。

    ckeditor的用法

    ckeditor的用法html网页编辑器(ASP PHP JSP CGI)

    在线编辑器ckeditor,国外人写的

    非常不错的web编辑器,可以支持.net,jsp,asp,php等。开源的。

    ckeditor 文本编辑 挺详细的

    jsp 挺不错的文本编辑器,挺实用的,只需要在jsp页面上配置就ok了!

    ckeditor+struts2上传图片

    ckeditor和struts2实现图片上传和编辑器上浏览!

Global site tag (gtag.js) - Google Analytics