jsp解决kindeditor在线编辑器struts图片上传问题

1、下载

    官网下载ckeditor,解压后去掉不需要的部分,仅需保留plugin,lang,theme文件夹,这三个文件夹中用不到的东西可以删除, 比如lang文件下存放所有语言文件js,仅仅  保留en.js和zh_CN.js即可,保留jsp文件夹下的json_upload.jsp文件和 kindeditor.js文件即可,把jsp下面的jar导入

  

在线编辑器:http://kindeditor.net/
 

 

2、修改json_upload.jsp

  修改json_upload.jsp文件保存路径即可修改一下两句即可。

  //文件保存目录路径
  String savePath = pageContext.getServletContext().getRealPath("/upload");

  //文件保存目录URL,此处为绝对路径
  String saveUrl  = request.getContextPath()+"/upload";

 3、可选

  obj.put("url", request.getContextPath()+"/img/" + newFileName);//修改返回到编辑器显示的图片

4、在plugins/images/image.js修改

          uploadJson = K.undef(self.uploadJson, self.basePath + 'jsp/upload_json.jsp')

5、在plugins/filemanager/filemanager.js修改

        fileManagerJson = K.undef(self.fileManagerJson, self.basePath + 'jsp/file_manager_json.jsp'),

6、jsp中

  <link rel="stylesheet" href="<%=application.getContextPath() %>/themes/default/default.css" />
    <script charset="utf-8" src="<%=application.getContextPath() %>/js/kindeditor.js"></script>
    <script charset="utf-8" src="<%=application.getContextPath() %>/lang/zh_CN.js"></script>

  <script charset="utf-8" src="<%=application.getContextPath() %>/lang/zh_CN.js"></script>
              <script>
            var editor;
            KindEditor.ready(function(K) {
                editor = K.create('textarea[id="content"]', {
                    filterMode:false,
                    resizeType : 1,
                    allowPreviewEmoticons : true,
                    allowImageUpload : true,
                    items : [
                        'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
                        'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
                        'insertunorderedlist', '|', 'emoticons', 'image', 'link']
                    
                    });
                K('input[name=submit]').click(function(e) {
                    editor.value=editor.text();
                });
            });
        </script>

       <textarea  tabindex="4"  name="brand.content" id="content" style="width:80.2%"></textarea>

----------------------------struts----------------------------------------------------

1、struts直接<url-pattern>/*</url-pattern>会拦截了在线编辑器的url,所以需要进行下面的配置,这个只是解决那个问题的其中一种

2、自定义filter

public class KindeditorUrlFilter extends StrutsPrepareAndExecuteFilter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
        
        HttpServletRequest request = (HttpServletRequest) req;    
           //不过滤的url    
           String url = request.getServletPath();  
           
           if ("/js/jsp/file_manager_json.jsp".equals(url)) {     
                
               chain.doFilter(req, res);    
           }else if("/js/jsp/upload_json.jsp".equals(url)){  
               chain.doFilter(req, res);  
           }else{    
               //System.out.println("使用默认的过滤器");    
               super.doFilter(req, res, chain);    
           }    
    }
}

3、web.xml配置filter

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>com.dan.action.KindeditorUrlFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

你可能感兴趣的:(kindeditor)