CKEditor3.6.4配置及在网站中的使用(二)

本文介绍如何为CKEditor自定义文件上传接口,通过创建FileUpdate.jsp实现图片上传功能,并使用Apache Commons FileUpload处理文件。

转载自:http://guaihubao.blog.163.com/blog/static/119235074201262155319726/

第六步:自定义接口实现CKEditor图片等文件的上传

在ckeditor根目录下创建两个jsp文件,分别为FileUpdate.jsp和FileBrowser.jsp

将如下代码写入到两个文件之中

//FileUpdate.jsp

<%@pageimport="java.io.File"%>

<%@pageimport="java.util.UUID"%>

<%@pageimport="org.apache.commons.fileupload.FileItem"%>

<%@pageimport="java.util.List"%>

<%@pageimport="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>

<%@pageimport="org.apache.commons.fileupload.FileItemFactory"%>

<%@pageimport="org.apache.commons.fileupload.servlet.ServletFileUpload"%>

<%@pagelanguage="java"contentType="text/html; charset=GB18030"

    pageEncoding="GB18030"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

    <head>

       <metahttp-equiv="Content-Type"content="text/html; charset=GB18030">

       <metahttp-equiv="pragma"content="no-cache">

       <metahttp-equiv="cache-control"content="no-cache">

       <metahttp-equiv="expires"content="0">

       <title>JSP上传文件</title>

    </head>

    <body>

       <%

           String path = request.getContextPath() + "/";

           if(ServletFileUpload.isMultipartContent(request)) {

              String type = "";

              if(request.getParameter("type") != null)//获取文件分类  

                  type = request.getParameter("type").toLowerCase() + "/";

              String callback = request.getParameter("CKEditorFuncNum");//获取回调JS的函数Num  

              FileItemFactory factory = newDiskFileItemFactory();

              ServletFileUpload servletFileUpload = newServletFileUpload(

                     factory);

              servletFileUpload.setHeaderEncoding("UTF-8");//解决文件名乱码的问题  

              List<FileItem> fileItemsList = servletFileUpload.parseRequest(request);

              for(FileItem item : fileItemsList) {

                  if(!item.isFormField()) {

                     String fileName = item.getName();

                     fileName = "file"+ System.currentTimeMillis()

                            + fileName.substring(fileName.lastIndexOf("."));

                     //定义文件路径,根据你的文件夹结构,可能需要做修改  

                     String clientPath = "UserFiles/"+ type

                            + fileName;



                     //保存文件到服务器上  

                     File file = newFile(request.getSession()

                            .getServletContext().getRealPath(clientPath));

                     if(!file.getParentFile().exists()) {

                         file.getParentFile().mkdirs();

                     }

                     item.write(file);




                     //打印一段JS,调用parent页面的CKEditor的函数,传递函数编号和上传后文件的路径;这句很重要,成败在此一句  

                     out

                            .println("<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction("

                                   + callback

                                   + ",'"

                                   + path

                                   + clientPath

                                   + "')</script>");

                     break;

                  }

              }

           }

       %>

    </body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值