首页>代码>超强大的图文混排编辑器 Struts2+FCKeditor-2.3 下载即可部署使用,完整Demo,有不懂的可以留言。>/EditWebTest/src/com/edit/util/MyConnectorServlet.java
package com.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; 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()); } }

moomin709 LV24
2022年2月28日
zero11 LV1
2021年9月29日
kong.yee LV40
2020年7月12日
cchen LV12
2020年5月28日
wangshihua LV19
2020年5月13日
tuhao888 LV9
2019年8月1日
xlisteven LV11
2019年5月23日
aa667899 LV6
2019年2月18日
xiang3322476796 LV3
2019年1月21日
xie5461246464 LV6
2018年12月25日

zzs269285304 LV7
2024年4月27日
zuidaimaqweasdzxc123 LV2
2024年1月12日
1872238554
2023年7月16日
暂无贡献等级
纪凡琪 LV2
2022年7月12日
小五12345 LV13
2022年3月28日
壹飒飒
2022年3月18日
暂无贡献等级
moomin709 LV24
2022年2月28日
Choefeker LV2
2021年11月22日
wjh12345654321 LV14
2021年7月27日
Jerrysup LV1
2021年7月17日