超强大的图文混排编辑器 Struts2+FCKeditor-2.3 下载即可部署使用,完整Demo,有不懂的可以留言。

原文:超强大的图文混排编辑器 Struts2+FCKeditor-2.3 下载即可部署使用,完整Demo,有不懂的可以留言。

源代码下载:http://www.zuidaima.com/share/1550463380982784.htm

超强大的图文混排编辑器 Struts2+FCKeditor-2.3 下载即可部署使用,完整Demo,有不懂的可以留言。 1.文本编辑器分为:Basic,Default var editor = new FCKeditor("content","800","400","Default",""); 2.更换皮肤 找到/EditWebTest/WebRoot/fckeditor/fckconfig.js 找到45行的FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; 修改default单词即可,皮肤自带有三种,第一种为default,office2003,silver 超强大的图文混排编辑器 Struts2+FCKeditor-2.3 下载即可部署使用,完整Demo,有不懂的可以留言。

package com.zuidaima.edit.util;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.fckeditor.handlers.CommandHandler;
import net.fckeditor.handlers.ConnectorHandler;
import net.fckeditor.handlers.ExtensionsHandler;
import net.fckeditor.handlers.RequestCycleHandler;
import net.fckeditor.handlers.ResourceTypeHandler;
import net.fckeditor.response.UploadResponse;
import net.fckeditor.response.XmlResponse;
import net.fckeditor.tool.Utils;
import net.fckeditor.tool.UtilsFile;
import net.fckeditor.tool.UtilsResponse;

import org.apache.commons.fileupload.FileItem;
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;
/**
*@author www.zuidaima.com
**/

public class MyConnectorServlet extends HttpServlet {

	private static final long serialVersionUID = 0xb05049436ea5f077L;
	private static final Logger logger = LoggerFactory
			.getLogger(MyConnectorServlet.class);

	public MyConnectorServlet() {
	}

	public void init() throws ServletException, IllegalArgumentException {
		String s = getServletContext().getRealPath(
				ConnectorHandler.getDefaultUserFilesPath());
		File file = new File(s);
		UtilsFile.checkDirAndCreate(file);
		logger.info("MyConnectorServlet successfully initialized!");
	}

	public void doGet(HttpServletRequest httpservletrequest,
			HttpServletResponse httpservletresponse) throws ServletException,
			IOException {
		logger.debug("Entering MyConnectorServlet#doGet");
		httpservletresponse.setCharacterEncoding("UTF-8");
		httpservletresponse.setContentType("application/xml; charset=UTF-8");
		httpservletresponse.setHeader("Cache-Control", "no-cache");
		PrintWriter printwriter = httpservletresponse.getWriter();
		String s = httpservletrequest.getParameter("Command");
		String s1 = httpservletrequest.getParameter("Type");
		String s2 = httpservletrequest.getParameter("CurrentFolder");
		logger.debug("Parameter Command: {}", s);
		logger.debug("Parameter Type: {}", s1);
		logger.debug("Parameter CurrentFolder: {}", s2);
		XmlResponse xmlresponse;
		if (!RequestCycleHandler.isEnabledForFileBrowsing(httpservletrequest))
			xmlresponse = new XmlResponse(1,
					"The current user isn't authorized for file browsing!");
		else if (!CommandHandler.isValidForGet(s))
			xmlresponse = new XmlResponse(1, "Invalid command specified");
		else if (s1 != null && !ResourceTypeHandler.isValid(s1))
			xmlresponse = new XmlResponse(1, "Invalid resource type specified");
		else if (!UtilsFile.isValidPath(s2)) {
			xmlresponse = new XmlResponse(1, "Invalid current folder specified");
		} else {
			CommandHandler commandhandler = CommandHandler.getCommand(s);
			ResourceTypeHandler resourcetypehandler = ResourceTypeHandler
					.getDefaultResourceType(s1);
			String s3 = UtilsFile.constructServerSidePath(httpservletrequest,
					resourcetypehandler);
			// s3=s3+"/"+getDate(3);//浏览时浏览最顶层目录
			String s4 = getServletContext().getRealPath(s3);
			File file = new File(s4);
			UtilsFile.checkDirAndCreate(file);
			File file1 = new File(file, s2);
			if (!file1.exists()) {
				xmlresponse = new XmlResponse(102);
			} else {
				xmlresponse = new XmlResponse(commandhandler,
						resourcetypehandler, s2,
						UtilsResponse.constructResponseUrl(httpservletrequest,
								resourcetypehandler, s2, true,
								ConnectorHandler.isFullUrl()));
				if (commandhandler.equals(CommandHandler.GET_FOLDERS))
					xmlresponse.setFolders(file1);
				else if (commandhandler
						.equals(CommandHandler.GET_FOLDERS_AND_FILES))
					xmlresponse.setFoldersAndFiles(file1);
				else if (commandhandler.equals(CommandHandler.CREATE_FOLDER)) {
					String s5 = UtilsFile.sanitizeFolderName(httpservletrequest
							.getParameter("NewFolderName"));
					logger.debug("Parameter NewFolderName: {}", s5);
					File file2 = new File(file1, s5);
					byte byte0 = 110;
					if (file2.exists())
						byte0 = 101;
					else
						try {
							byte0 = ((byte) (file2.mkdir() ? 0 : 102));
						} catch (SecurityException securityexception) {
							byte0 = 103;
						}
					xmlresponse.setError(byte0);
				}
			}
		}
		printwriter.print(xmlresponse);
		printwriter.flush();
		printwriter.close();
		logger.debug("Exiting MyConnectorServlet#doGet");
	}

	@SuppressWarnings("unchecked")
	public void doPost(HttpServletRequest httpservletrequest,
			HttpServletResponse httpservletresponse) throws ServletException,
			IOException {
		logger.debug("Entering Connector#doPost");
		httpservletresponse.setCharacterEncoding("UTF-8");
		httpservletresponse.setContentType("text/html; charset=UTF-8");
		httpservletresponse.setHeader("Cache-Control", "no-cache");
		PrintWriter printwriter = httpservletresponse.getWriter();
		String s = httpservletrequest.getParameter("Command");
		String s1 = httpservletrequest.getParameter("Type");
		String s2 = httpservletrequest.getParameter("CurrentFolder");
		logger.debug("Parameter Command: {}", s);
		logger.debug("Parameter Type: {}", s1);
		logger.debug("Parameter CurrentFolder: {}", s2);
		if (Utils.isEmpty(s) && Utils.isEmpty(s2)) {
			s = "QuickUpload";
			s2 = "/";
		}
		UploadResponse uploadresponse;
		if (!RequestCycleHandler.isEnabledForFileUpload(httpservletrequest))
			uploadresponse = new UploadResponse(new Object[] {
					Integer.valueOf(203), null, null,
					"The current user isn't authorized for file upload!" });
		else if (!CommandHandler.isValidForPost(s))
			uploadresponse = new UploadResponse(
					new Object[] { Integer.valueOf(1), null, null,
							"Invalid command specified" });
		else if (s1 != null && !ResourceTypeHandler.isValid(s1))
			uploadresponse = new UploadResponse(new Object[] {
					Integer.valueOf(1), null, null,
					"Invalid resource type specified" });
		else if (!UtilsFile.isValidPath(s2)) {
			uploadresponse = UploadResponse.UR_INVALID_CURRENT_FOLDER;
		} else {
			ResourceTypeHandler resourcetypehandler = ResourceTypeHandler
					.getDefaultResourceType(s1);
			String s3 = UtilsFile.constructServerSidePath(httpservletrequest,
					resourcetypehandler);
			s3 = s3 + "/" + getDate(3);
			String s4 = getServletContext().getRealPath(s3);
			File file = new File(s4);
			UtilsFile.checkDirAndCreate(file);
			File file1 = new File(file, s2);
			if (!file1.exists()) {
				uploadresponse = UploadResponse.UR_INVALID_CURRENT_FOLDER;
			} else {
				String s5 = null;
				DiskFileItemFactory diskfileitemfactory = new DiskFileItemFactory();
				ServletFileUpload servletfileupload = new ServletFileUpload(
						diskfileitemfactory);
				servletfileupload.setHeaderEncoding("UTF-8");
				try {
					List list = servletfileupload
							.parseRequest(httpservletrequest);
					FileItem fileitem = (FileItem) list.get(0);
					String s6 = UtilsFile.sanitizeFileName(fileitem.getName());
					String s7 = FilenameUtils.getName(s6);
					String s8 = getDate(0);
					String s9 = FilenameUtils.getExtension(s7);
					s7 = s8.concat(".").concat(s9.toLowerCase());
					if (!ExtensionsHandler.isAllowed(resourcetypehandler, s9)) {
						uploadresponse = new UploadResponse(
								new Object[] { Integer.valueOf(202) });
					} else {
						File file2 = new File(file1, s7);
						for (int i = 1; file2.exists(); i++) {
							s5 = s8.concat("_").concat(String.valueOf(i))
									.concat(".").concat(s9.toLowerCase());
							file2 = new File(file1, s5);
						}
						if (Utils.isEmpty(s5)) {
							s2 = s2 + getDate(3) + "/";
							uploadresponse = new UploadResponse(new Object[] {
									Integer.valueOf(0),
									UtilsResponse.constructResponseUrl(
											httpservletrequest,
											resourcetypehandler, s2, true,
											ConnectorHandler.isFullUrl())
											.concat(s7) });
							String aa = UtilsResponse.constructResponseUrl(
									httpservletrequest, resourcetypehandler,
									s2, true, ConnectorHandler.isFullUrl())
									.concat(s7);
						} else {
							uploadresponse = new UploadResponse(new Object[] {
									Integer.valueOf(201),
									UtilsResponse.constructResponseUrl(
											httpservletrequest,
											resourcetypehandler, s2, true,
											ConnectorHandler.isFullUrl())
											.concat(s5), s5 });
						}
						if (resourcetypehandler
								.equals(ResourceTypeHandler.IMAGE)
								&& ConnectorHandler.isSecureImageUploads()) {
							if (UtilsFile.isImage(fileitem.getInputStream())) {
								fileitem.write(file2);
							} else {
								fileitem.delete();
								uploadresponse = new UploadResponse(
										new Object[] { Integer.valueOf(202) });
							}
						} else {
							fileitem.write(file2);
						}
					}
				} catch (Exception exception) {
					uploadresponse = new UploadResponse(
							new Object[] { Integer.valueOf(203) });
				}
			}
		}
		printwriter.print(uploadresponse);
		printwriter.flush();
		printwriter.close();
		logger.debug("Exiting Connector#doPost");
	}

	public static final String getDate(int i) {
		String as[] = { "yyyyMMddHHmmssSSS", "yyyyMMddHHmmss", "yyMMddHHmmss",
				"yyyyMMdd", "yyyy-MM-dd", "HHmmssSSS", "HHmmss" };
		SimpleDateFormat simpledateformat = null;
		try {
			simpledateformat = new SimpleDateFormat(as[i]);
		} catch (Exception exception) {
			exception.printStackTrace();
			System.out.print(exception.toString());
			return exception.toString();
		}
		return simpledateformat.format(new Date());
	}

}

	    			

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值