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

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

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

1, pom.xml中添加:

net.fckeditor

java-core

2.4.1

org.slf4j

slf4j-nop

1.5.2

2,web.xml中添加

Connector

com.derbysoft.dhgroup.core.utils.ConnectorServlet

1

Connector

/asserts/fckeditor/editor/filemanager/connectors/*

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

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

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

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

等等

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

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

var oEditor = FCKeditorAPI.GetInstance("promotion.content");

$('promotion.content').value = oEditor.GetXHTML(true);

“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: mkdir <DefaultUserFilesPath>

*/

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 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 temStr= request.getParameter("NewFolderName");

temStr=new String(temStr.getBytes("iso8859-1"),"utf-8");

// 完毕

String newFolderStr = UtilsFile.sanitizeFolderName(temStr);

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 empty

if (Utils.isEmpty(commandStr) && Utils.isEmpty(currentFolderStr)) {

commandStr = "QuickUpload";

currentFolderStr = "/";

}

if (!RequestCycleHandler.isEnabledForFileUpload(request)){

List prams = new ArrayList();

prams.add(UploadResponse.SC_SECURITY_ERROR);

prams.add(null);

prams.add(null);

prams.add(Messages.NOT_AUTHORIZED_FOR_UPLOAD);

ur = new UploadResponse(prams.toArray());

}

else if (!CommandHandler.isValidForPost(commandStr))  {

List prams = new ArrayList();

prams.add(UploadResponse.SC_ERROR);

prams.add(null);

prams.add(null);

prams.add(Messages.INVALID_COMMAND);

ur = new UploadResponse(prams.toArray());

}

else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr)){

List prams = new ArrayList();

prams.add(UploadResponse.SC_ERROR);

prams.add(null);

prams.add(null);

prams.add(Messages.INVALID_TYPE);

ur = new UploadResponse(prams.toArray());

}

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 time

FileItem 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);

//修改上传文件名字,用UUID方法

filename= UUID.randomUUID().toString()+ "."+ extension;

//  完毕

//添加限制上传大小方法

//如果这个文件的扩展名不允许上传

if (!ExtensionsHandler.isAllowed(resourceType, extension)) {

List prams = new ArrayList();

prams.add(UploadResponse.SC_INVALID_EXTENSION);

ur = new UploadResponse(prams.toArray());

}

//如果超出大小10M

else if(uplFile.getSize()> 10000 * 1024) {

List prams = new ArrayList();

prams.add(204);

//传递一个自定义的错误码

ur = new UploadResponse(prams.toArray());

}

// 如果不存在以上情况,则保存

else {

// construct an unique file name

File 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)) {

List prams = new ArrayList();

prams.add(UploadResponse.SC_OK);

prams.add(UtilsResponse.constructResponseUrl(request, resourceType, currentFolderStr, true,

ConnectorHandler.isFullUrl()).concat(filename));

//传递一个自定义的错误码

ur = new UploadResponse(prams.toArray());

}

else {

List prams = new ArrayList();

prams.add(UploadResponse.SC_RENAMED);

prams.add(UtilsResponse.constructResponseUrl(request, resourceType, currentFolderStr, true,

ConnectorHandler.isFullUrl()).concat(newFilename));

prams.add(newFilename);

ur = new UploadResponse(prams.toArray());

}

// secure p_w_picpath check

if (resourceType.equals(ResourceTypeHandler.IMAGE) && ConnectorHandler.isSecureImageUploads()) {

if (UtilsFile.isImage(uplFile.getInputStream()))

uplFile.write(pathToSave);

else {

uplFile.delete();

List prams = new ArrayList();

prams.add(UploadResponse.SC_INVALID_EXTENSION);

ur = new UploadResponse(prams.toArray());

}

} else

uplFile.write(pathToSave);

}

} catch (Exception e) {

List prams = new ArrayList();

prams.add(UploadResponse.SC_SECURITY_ERROR);

ur = new UploadResponse(prams.toArray());

}

}

}

out.print(ur);

out.flush();

out.close();

logger.debug("Exiting Connector#doPost");

}

}

附2:fckconfig.js修改后的内容

/*

* FCKeditor - The text editor for Internet - http://www.fckeditor.net

* Copyright (C) 2003-2008 Frederico Caldeira Knabben

*

* == BEGIN LICENSE ==

*

* Licensed under the terms of any of the following licenses at your

* choice:

*

*  - GNU General Public License Version 2 or later (the "GPL")

*    http://www.gnu.org/licenses/gpl.html

*

*  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")

*    http://www.gnu.org/licenses/lgpl.html

*

*  - Mozilla Public License Version 1.1 or later (the "MPL")

*    http://www.mozilla.org/MPL/MPL-1.1.html

*

* == END LICENSE ==

*

* Editor configuration settings.

*

* Follow this link for more information:

* http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options

*/

FCKConfig.CustomConfigurationsPath = '' ;

FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;

FCKConfig.EditorAreaStyles = '' ;

FCKConfig.ToolbarComboPreviewCSS = '' ;

FCKConfig.DocType = '' ;

FCKConfig.BaseHref = '' ;

FCKConfig.FullPage = false ;

// The following option determines whether the "Show Blocks" feature is enabled or not at startup.

FCKConfig.StartupShowBlocks = false ;

FCKConfig.Debug = false ;

FCKConfig.AllowQueryStringDebug = true ;

FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;

FCKConfig.SkinEditorCSS = '' ; // FCKConfig.SkinPath + "|" ;

FCKConfig.SkinDialogCSS = '' ; // FCKConfig.SkinPath + "|" ;

FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'p_w_picpaths/toolbar.start.gif', FCKConfig.SkinPath + 'p_w_picpaths/toolbar.buttonarrow.gif' ] ;

FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;

// FCKConfig.Plugins.Add( 'autogrow' ) ;

// FCKConfig.Plugins.Add( 'dragresizetable' );

FCKConfig.AutoGrowMax = 400 ;

// FCKConfig.ProtectedSource.Add( //g ) ; // ASP style server side code

// FCKConfig.ProtectedSource.Add( //g ) ; // PHP style server side code

// FCKConfig.ProtectedSource.Add( /(]+>[\s|\S]*?]+>)|(]+\/>)/gi ) ; // ASP.Net style tags

FCKConfig.AutoDetectLanguage = false ;//true ;

FCKConfig.DefaultLanguage  = 'zh-cn' ;

FCKConfig.ContentLangDirection = 'ltr' ;

FCKConfig.ProcessHTMLEntities = true ;

FCKConfig.IncludeLatinEntities = true ;

FCKConfig.IncludeGreekEntities = true ;

FCKConfig.ProcessNumericEntities = false ;

FCKConfig.AdditionalNumericEntities = ''  ;  // Single Quote: "'"

FCKConfig.FillEmptyBlocks = true ;

FCKConfig.FormatSource  = true ;

FCKConfig.FormatOutput  = true ;

FCKConfig.FormatIndentator = '    ' ;

FCKConfig.EMailProtection = 'encode' ; // none | encode | function

FCKConfig.EMailProtectionFunction = 'mt(NAME,DOMAIN,SUBJECT,BODY)' ;

FCKConfig.StartupFocus = false ;

FCKConfig.ForcePasteAsPlainText = false ;

FCKConfig.AutoDetectPasteFromWord = true ; // IE only.

FCKConfig.ShowDropDialog = true ;

FCKConfig.ForceSimpleAmpersand = false ;

FCKConfig.TabSpaces  = 1 ;

FCKConfig.ShowBorders = true ;

FCKConfig.SourcePopup = false ;

FCKConfig.ToolbarStartExpanded = true ;

FCKConfig.ToolbarCanCollapse = true ;

FCKConfig.IgnoreEmptyParagraphValue = true ;

FCKConfig.FloatingPanelsZIndex = 10000 ;

FCKConfig.HtmlEncodeOutput = false ;

FCKConfig.TemplateReplaceAll = true ;

FCKConfig.TemplateReplaceCheckbox = true ;

FCKConfig.ToolbarLocation = 'In' ;

FCKConfig.ToolbarSets["Default"] = [

['FitWindow','NewPage','Preview','-'],

['Cut','Copy','Paste','PasteText','PasteWord','-','Print'],

['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],

['Link','Unlink'],

['Image'/*,'Flash'*/,'Table'],

'/',

['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],

['OrderedList','UnorderedList','-','Outdent','Indent'],

['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],

['TextColor','BGColor','Rule','Smiley','SpecialChar'],

'/',

['Style','FontFormat','FontName','FontSize','Source']

]  ;

FCKConfig.ToolbarSets["Default0"] = [

['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],

['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],

['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],

['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],

'/',

['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],

['OrderedList','UnorderedList','-','Outdent','Indent'],

['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],

['Link','Unlink','Anchor'],

['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],

'/',

['Style','FontFormat','FontName','FontSize'],

['TextColor','BGColor'],

['FitWindow','-','About']

] ;

FCKConfig.ToolbarSets["Basic"] = [

['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']

] ;

FCKConfig.EnterMode = 'p' ;   // p | div | br

FCKConfig.ShiftEnterMode = 'br' ; // p | div | br

FCKConfig.Keystrokes = [

[ CTRL + 65 /*A*/, true ],

[ CTRL + 67 /*C*/, true ],

[ CTRL + 70 /*F*/, true ],

[ CTRL + 83 /*S*/, true ],

[ CTRL + 84 /*T*/, true ],

[ CTRL + 88 /*X*/, true ],

[ CTRL + 86 /*V*/, 'Paste' ],

[ CTRL + 45 /*INS*/, true ],

[ SHIFT + 45 /*INS*/, 'Paste' ],

[ CTRL + 88 /*X*/, 'Cut' ],

[ SHIFT + 46 /*DEL*/, 'Cut' ],

[ CTRL + 90 /*Z*/, 'Undo' ],

[ CTRL + 89 /*Y*/, 'Redo' ],

[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],

[ CTRL + 76 /*L*/, 'Link' ],

[ CTRL + 66 /*B*/, 'Bold' ],

[ CTRL + 73 /*I*/, 'Italic' ],

[ CTRL + 85 /*U*/, 'Underline' ],

[ CTRL + SHIFT + 83 /*S*/, 'Save' ],

[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],

[ SHIFT + 32 /*SPACE*/, 'Nbsp' ]

] ;

FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image','Flash',*/'Select','Textarea','Checkbox','Radio','TextField','HiddenField',/*'ImageButton',*/'Button','BulletedList','NumberedList','Table','Form','DivContainer'] ;

FCKConfig.BrowserContextMenuOnCtrl = false ;

FCKConfig.BrowserContextMenu = false ;

FCKConfig.EnableMoreFontColors = true ;

FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;

FCKConfig.FontFormats = 'p;h1;h2;h3;h4;h5;h6;pre;address;div' ;

FCKConfig.FontNames  = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

FCKConfig.FontSizes  = 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;

FCKConfig.StylesXmlPath  = FCKConfig.EditorPath + 'fckstyles.xml' ;

FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;

FCKConfig.SpellChecker   = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'

FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ;

FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl

FCKConfig.FirefoxSpellChecker = false ;

FCKConfig.MaxUndoLevels = 15 ;

FCKConfig.DisableObjectResizing = false ;

FCKConfig.DisableFFTableHandles = true ;

FCKConfig.LinkDlgHideTarget  = false ;

FCKConfig.LinkDlgHideAdvanced = false ;

FCKConfig.ImageDlgHideLink  = false ;

FCKConfig.ImageDlgHideAdvanced = false ;

FCKConfig.FlashDlgHideAdvanced = false ;

FCKConfig.ProtectedTags = '' ;

// This will be applied to the body element of the editor

FCKConfig.BodyId = '' ;

FCKConfig.BodyClass = '' ;

FCKConfig.DefaultStyleLabel = '' ;

FCKConfig.DefaultFontFormatLabel = '' ;

FCKConfig.DefaultFontLabel = '' ;

FCKConfig.DefaultFontSizeLabel = '' ;

FCKConfig.DefaultLinkTarget = '' ;

// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word

FCKConfig.CleanWordKeepsStructure = false ;

// Only inline elements are valid.

FCKConfig.RemoveFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' ;

// Attributes that will be removed

FCKConfig.RemoveAttributes = 'class,style,lang,width,height,align,hspace,valign' ;

FCKConfig.CustomStyles =

{

'Red Title' : { Element : 'h3', Styles : { 'color' : 'Red' } }

};

// Do not add, rename or remove styles here. Only apply definition changes.

FCKConfig.CoreStyles =

{

// Basic Inline Styles.

'Bold'   : { Element : 'strong', Overrides : 'b' },

'Italic'  : { Element : 'em', Overrides : 'i' },

'Underline'  : { Element : 'u' },

'StrikeThrough' : { Element : 'strike' },

'Subscript'  : { Element : 'sub' },

'Superscript' : { Element : 'sup' },

// Basic Block Styles (Font Format Combo).

'p'    : { Element : 'p' },

'div'   : { Element : 'div' },

'pre'   : { Element : 'pre' },

'address'  : { Element : 'address' },

'h1'   : { Element : 'h1' },

'h2'   : { Element : 'h2' },

'h3'   : { Element : 'h3' },

'h4'   : { Element : 'h4' },

'h5'   : { Element : 'h5' },

'h6'   : { Element : 'h6' },

// Other formatting features.

'FontFace' :

{

Element  : 'span',

Styles  : { 'font-family' : '#("Font")' },

Overrides : [ { Element : 'font', Attributes : { 'face' : null } } ]

},

'Size' :

{

Element  : 'span',

Styles  : { 'font-size' : '#("Size","fontSize")' },

Overrides : [ { Element : 'font', Attributes : { 'size' : null } } ]

},

'Color' :

{

Element  : 'span',

Styles  : { 'color' : '#("Color","color")' },

Overrides : [ { Element : 'font', Attributes : { 'color' : null } } ]

},

'BackColor'  : { Element : 'span', Styles : { 'background-color' : '#("Color","color")' } },

'SelectionHighlight' : { Element : 'span', Styles : { 'background-color' : 'navy', 'color' : 'white' } }

};

// The distance of an indentation step.

FCKConfig.IndentLength = 40 ;

FCKConfig.IndentUnit = 'px' ;

// Alternatively, FCKeditor allows the use of CSS classes for block indentation.

// This overrides the IndentLength/IndentUnit settings.

FCKConfig.IndentClasses = [] ;

// [ Left, Center, Right, Justified ]

FCKConfig.JustifyClasses = [] ;

// The following value defines which File Browser connector and Quick Upload

// "uploader" to use. It is valid for the default implementaion and it is here

// just to make this configuration file cleaner.

// It is not possible to change this value using an external file or even

// inline when creating the editor instance. In that cases you must set the

// values of LinkBrowserURL, ImageBrowserURL and so on.

// Custom implementations should just ignore it.

var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py

var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py

// Don't care about the following two lines. It just calculates the correct connector

// extension to use for the default File Browser (Perl uses "cgi").

var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;

var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ;

FCKConfig.LinkBrowser = true ;

FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;

FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ;  // 70%

FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70%

FCKConfig.ImageBrowser = true ;

FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;

FCKConfig.ImageBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ; // 70% ;

FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% ;

FCKConfig.FlashBrowser = true ;

FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;

FCKConfig.FlashBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ; //70% ;

FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; //70% ;

FCKConfig.LinkUpload = true ;

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;

FCKConfig.LinkUploadAllowedExtensions = ".(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ;   // empty for all

FCKConfig.LinkUploadDeniedExtensions = "" ; // empty for no one

FCKConfig.ImageUpload = true ;

FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ;

FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ;  // empty for all

FCKConfig.ImageUploadDeniedExtensions = "" ;       // empty for no one

FCKConfig.FlashUpload = true ;

FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Flash' ;

FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ;  // empty for all

FCKConfig.FlashUploadDeniedExtensions = "" ;     // empty for no one

FCKConfig.SmileyPath = FCKConfig.BasePath + 'p_w_picpaths/smiley/msn/' ;

FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'] ;

FCKConfig.SmileyColumns = 8 ;

FCKConfig.SmileyWindowWidth  = 320 ;

FCKConfig.SmileyWindowHeight = 210 ;

FCKConfig.BackgroundBlockerColor = '#ffffff' ;

FCKConfig.BackgroundBlockerOpacity = 0.50 ;

FCKConfig.MsWebBrowserControlCompat = false ;

FCKConfig.PreventSubmitHandler = false ;

注:最新出的ckeditor 本身关闭了上传下载功能,ckfinder支持上传下载但其是收费的,往上有人自己写的上传下载功能地址是

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值