Fckeditor的使用.doc_第1页
Fckeditor的使用.doc_第2页
Fckeditor的使用.doc_第3页
Fckeditor的使用.doc_第4页
Fckeditor的使用.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Fckeditor的使用一. 在web。Xml里面加入servlet配置1. 2. ConnectorServlet3. 4. com.gzbugu.gift.fck.servlet.ConnectorServlet5. 6. 17. 8. 9. ConnectorServlet10. 11. /fckeditor/editor/filemanager/connectors/*12. 13. 二在src目录下添加这样的类package com.gzbugu.gift.fck.servlet;import java.io.File;import java.io.IOException;import java.io.PrintWriter;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.connector.Messages;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 mons.fileupload.FileItem;import mons.fileupload.FileItemFactory;import mons.fileupload.disk.DiskFileItemFactory;import mons.fileupload.servlet.ServletFileUpload;import mons.io.FilenameUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/* * Servlet to upload and browse files. * * This servlet accepts 4 commands which interact with the server-side * filesystem. * The allowed commands are: * * GetFolders: Retrieves a list of folders in the current * folder * GetFoldersAndFiles: Retrives a list of files and folders * in the current folder * CreateFolder: Creates a new folder in the current folder * FileUpload: Stores an uploaded file into the current * folder. (must be sent with POST) * * * version $Id: ConnectorServlet.java 2101 2008-06-22 22:00:48Z mosipov $ */public class ConnectorServlet extends HttpServlet private static final long serialVersionUID = -5742008970929377161L;private static final Logger logger = LoggerFactory.getLogger(ConnectorServlet.class);/* * Initialize the servlet: mkdir <DefaultUserFilesPath> */public void init() throws ServletException, IllegalArgumentException String realDefaultUserFilesPath = getServletContext().getRealPath( ConnectorHandler.getDefaultUserFilesPath();File defaultUserFilesDir = new File(realDefaultUserFilesPath);UtilsFile.checkDirAndCreate(defaultUserFilesDir);(ConnectorServlet successfully initialized!);/* * Manage the GET requests (GetFolders, * GetFoldersAndFiles, CreateFolder). * * The servlet accepts commands sent in the following format: * connector?Command=<CommandName>&Type=<ResourceType>&CurrentFolder=<FolderPath> * * It executes the commands and then returns the result to the client in XML * format. * */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);String typePath = UtilsFile.constructServerSidePath(request, resourceType);String typeDirPath = getServletContext().getRealPath(typePath);File typeDir = new File(typeDirPath);UtilsFile.checkDirAndCreate(typeDir);File currentDir = new File(typeDir, currentFolderStr);if (!currentDir.exists()xr = new XmlResponse(XmlResponse.EN_INVALID_FOLDER_NAME);else xr = new XmlResponse(command, resourceType, currentFolderStr, UtilsResponse .constructResponseUrl(request, resourceType, currentFolderStr, true, ConnectorHandler.isFullUrl();if (command.equals(CommandHandler.GET_FOLDERS)xr.setFolders(currentDir);else if (command.equals(CommandHandler.GET_FOLDERS_AND_FILES)xr.setFoldersAndFiles(currentDir);else if (command.equals(CommandHandler.CREATE_FOLDER) String tempstr=request.getParameter(NewFolderName);tempstr=new String(tempstr.getBytes(iso8859-1),UTF-8);String newFolderStr = UtilsFile.sanitizeFolderName(tempstr);logger.debug(Parameter NewFolderName: , newFolderStr);File newFolder = new File(currentDir, newFolderStr);int errorNumber = XmlResponse.EN_UKNOWN;if (newFolder.exists()errorNumber = XmlResponse.EN_ALREADY_EXISTS;else try errorNumber = (newFolder.mkdir() ? XmlResponse.EN_OK : XmlResponse.EN_INVALID_FOLDER_NAME; catch (SecurityException e) errorNumber = XmlResponse.EN_SECURITY_ERROR;xr.setError(errorNumber);out.print(xr);out.flush();out.close();logger.debug(Exiting ConnectorServlet#doGet);/* * Manage the POST requests (FileUpload). * * The servlet accepts commands sent in the following format: * connector?Command=<FileUpload>&Type=<ResourceType>&CurrentFolder=<FolderPath> * with the file in the POST body. * * It stores an uploaded file (renames a file if another exists with the * same name) and then returns the JavaScript callback. */SuppressWarnings(unchecked)public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException logger.debug(Entering Connector#doPost);response.setCharacterEncoding(UTF-8);response.setContentType(text/html; 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);UploadResponse ur;/ if this is a QuickUpload request, commandStr and currentFolderStr/ are emptyif (Utils.isEmpty(commandStr) & Utils.isEmpty(currentFolderStr) commandStr = QuickUpload;currentFolderStr = /;if (!RequestCycleHandler.isEnabledForFileUpload(request)ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR, null, null, Messages.NOT_AUTHORIZED_FOR_UPLOAD);else if (!CommandHandler.isValidForPost(commandStr)ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_COMMAND);else if (typeStr != null & !ResourceTypeHandler.isValid(typeStr)ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_TYPE);else if (!UtilsFile.isValidPath(currentFolderStr)ur = UploadResponse.UR_INVALID_CURRENT_FOLDER;else ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr);String typePath = UtilsFile.constructServerSidePath(request, resourceType);String typeDirPath = getServletContext().getRealPath(typePath);File typeDir = new File(typeDirPath);UtilsFile.checkDirAndCreate(typeDir);File currentDir = new File(typeDir, currentFolderStr);if (!currentDir.exists()ur = UploadResponse.UR_INVALID_CURRENT_FOLDER;else String newFilename = null;FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding(UTF-8);try List items = upload.parseRequest(request);/ We upload only one file at the same timeFileItem uplFile = items.get(0);String rawName = UtilsFile.sanitizeFileName(uplFile.getName();String filename = FilenameUtils.getName(rawName);String baseName = FilenameUtils.removeExtension(filename);String extension = FilenameUtils.getExtension(filename);/filename=UUID.randomUUID().toString()+.+extension;if (!ExtensionsHandler.isAllowed(resourceType, extension)ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);/else if(uplFile.getSize()10*1024)/ur=new UploadResponse(204);/else / construct an unique file nameFile pathToSave = new File(currentDir, filename);int counter = 1;while (pathToSave.exists() newFilename = baseName.concat().concat(String.valueOf(counter) .concat().concat(.).concat(extension);pathToSave = new File(currentDir, newFilename);counter+;if (Utils.isEmpty(newFilename)ur = new UploadResponse(UploadResponse.SC_OK, UtilsResponse .constructResponseUrl(request, resourceType, currentFolderStr, true, ConnectorHandler.isFullUrl().concat(filename);elseur = new UploadResponse(UploadResponse.SC_RENAMED, UtilsRe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论