fckeditor 2.6.4 + fckeditor.java 2.4.1(图片上传)

本文介绍了如何配置和使用FCKeditor 2.6.4以及fckeditor.java 2.4.1实现图片上传功能。详细步骤包括在pom.xml中添加依赖,配置web.xml,设置fckeditor.properties文件,以及在jsp页面中使用FCKeditor。此外,还提到了在ConnectorServlet中处理中文乱码问题,并提供了相关的jar包和js包下载链接。
摘要由CSDN通过智能技术生成

搞了几天终于把“fckeditor 2.6.4 + fckeditor.java 2.4.1(图片上传)”搞定;

相应的jar包和fckeditor的js包可以到"www.fckeditor.net"上下载

1, pom.xml中添加:

<!--start fckeditor-->

       <dependency>
              <groupId>net.fckeditor</groupId>
              <artifactId>java-core</artifactId>
              <version>2.4.1</version>
        </dependency>


        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.5.2</version>

        </dependency>

<!--end fckeditor-->

2,web.xml中添加

<!-- fckeditor 2.6.4 with fckeditor.java 2.4.1 -->
    <servlet>
        <servlet-name>Connector</servlet-name>

        <!-- 默认是jar中的“net.fckeditor.connector.ConnectorServlet”,此处“ConnectorServlet”一般都要重写用于处理中文乱码的-->
        <servlet-class>com.derbysoft.dhgroup.core.utils.ConnectorServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Connector</servlet-name>
        <!-- “asserts” 是我的“webapp”目录下专门存放js,css,images等的文件夹, fckeditor整套js放在其下-->
        <url-pattern>/asserts/fckeditor/editor/filemanager/connectors/*</url-pattern>
    </servlet-mapping>

<!-- end fckeditor -->

 

3,fckeditor.properties文件一定要直接放在classes目录下,否则找不到,报错

     其内必写内容:connector.userActionImpl = net.fckeditor.requestcycle.impl.UserActionImpl

     选择内容:1、上传文件/图片等存放的地址:connector.userFilesPath = /upload/fckeditor

                  2、fckeditor包的存放地址:fckeditor.basePath = /asserts/fckeditor 

 

     等等

4, jsp页面上有三种写法,此处选其一

  <FCK:editor  instanceName="promotion.content" value="${promotion.content}" width="90%" height="400"  basePath="<%=FCKPATHH%>"></FCK:editor>

5,获得fckeditor 编辑的内容的值的js

        var oEditor = FCKeditorAPI.GetInstance("promotion.content");
        $('promotion.content').value = oEditor.GetXHTML(true);

6,关于fckeditor包的瘦身问题,可以参考http://zhidao.baidu.com/question/98933664.html,但

“FCKConfig.*****BrowserURL”,“FCKConfig。*****UploadURL”这几项不要照着修改,否则也要报错。

 

 

我在这次fckeditor应用中遇到的问题:

如6的链接中有一项是将“FCKConfig.ImageBrowserURL”修改为:

FCKConfig.ImageBrowserURL= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;

我观察fckeditor包发现,php、asp、aspx等都有一个connector.*(文件后缀),而因我下载的fckeditor包中没有jsp文件夹,更不要说connector.jsp了,所以不知他的修改不能应用于我的程序是否因为这个原因。

 

 

附1:ConnectorServlet.java

package com.*.core.utils;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.fckeditor.connector.Messages;
import net.fckeditor.handlers.*;
import net.fckeditor.tool.UtilsFile;
import net.fckeditor.tool.UtilsResponse;
import net.fckeditor.tool.Utils;
import net.fckeditor.response.XmlResponse;
import net.fckeditor.response.UploadResponse;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.UUID;
import java.util.ArrayList;

/**
 * Created by IntelliJ IDEA.
 * Date: 2009-6-19
 * Time: 11:14:24
 * To change this template use File | Settings | File Templates.
 */
public class ConnectorServlet extends javax.servlet.http.HttpServlet {


    private static final long serialVersionUID = -5742008970929377161L;
    private static final Logger logger = LoggerFactory.getLogger(ConnectorServlet.class);

/**
* Initialize the servlet: <code>mkdir</code> &lt;DefaultUserFilesPath&gt;
*/
    public void init() throws ServletException, IllegalArgumentException {
        String realDefaultUserFilesPath = getServletContext().getRealPath(
        ConnectorHandler.getDefaultUserFilesPath());

        File defaultUserFilesDir = new File(realDefaultUserFilesPath);
        UtilsFile.checkDirAndCreate(defaultUserFilesDir);

        logger.info("ConnectorServlet successfully initialized!");
    }

/**
* Manage the <code>GET</code> requests (<code>GetFolders</code>,
* <code>GetFoldersAndFiles</code>, <code>CreateFolder</code>).<br/>
*
* The servlet accepts commands sent in the following format:<br/>
* <code>connector?Command=&lt;CommandName&gt;&Type=&lt;ResourceType&gt;&CurrentFolder=&lt;FolderPath&gt;</code>
* <p>
* It executes the commands and then returns the result to the client in XML
* format.
* </p>
*/
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        logger.debug("Entering ConnectorServlet#doGet");

        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/xml; charset=UTF-8");
        response.setHeader("Cache-Control", "no-cache");
        PrintWriter out = response.getWriter();

        String commandStr = request.getParameter("Command");
        String typeStr = request.getParameter("Type");
        String currentFolderStr = request.getParameter("CurrentFolder");

        logger.debug("Parameter Command: {}", commandStr);
        logger.debug("Parameter Type: {}", typeStr);
        logger.debug("Parameter CurrentFolder: {}", currentFolderStr);

        XmlResponse xr;

        if (!RequestCycleHandler.isEnabledForFileBrowsing(request))
        xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.NOT_AUTHORIZED_FOR_BROWSING);
        else if (!CommandHandler.isValidForGet(commandStr))
        xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.INVALID_COMMAND);
        else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr))
        xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.INVALID_TYPE);
        else if (!UtilsFile.isValidPath(currentFolderStr))
        xr = new XmlResponse(XmlResponse.EN_ERROR, Messages.INVALID_CURRENT_FOLDER);
        else {
        CommandHandler command = CommandHandler.getCommand(commandStr);
        ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值