FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的“FCK” 是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。

FCKeditor是开源的,而且效果不错。FCKeditor的插件是对FCKeditor的扩展功能。

尽管一般条件下FCKeditor能适应使用,但你可能对FCKeditor仅有的功能不满意,FCKeditor提供了插件开放功能,好,我就来试试。

本人一直对于FCKeditor的文件上传功能很是不满,so,经过在网上多翻查找,找到一款多文件上传的小插件--uploadify。很棒的一个小东西。

我们先了解下FCKeditor插件的目录结构和一些命令。

插件的目录结构:插件目录的名称必须和插件的名称一样,而且目录里面必须包含一个fckplugin.js文件。lang目录用来实现界面的国际化的一些js文件,是可选的。每一个文件定义一种语言,文件名不包含.js,用FCKConfig.Plugins.Add()注册。如果实现的插件命令没有界面,也可以不需要支持任何语言。

我的实例目录结构:

fckeditor/editor/plugins/uploadify/fckplugin.js

fckeditor/editor/plugins/uploadify/lang/en.js

fckeditor/editor/plugins/uploadify/lang/zh-cn.js

fckeditor/editor/plugins/uploadify/inc/*.*   (uploadify相关的有文件)

fckeditor/editor/plugins/uploadify/index.html     (FCKeditor调用文件,用于上传界面)

fckeidtor/editor/plugins/uploadify/btn.png   (用于显示在FCKeditor主界面上工具栏中)

在fckplugin.js文件中定义你的插件,同时也应该注册改命令,以及创建一个工具栏按钮。

命令详解:

1.注册命令
FCKCommands.RegisterCommand(命令名称,对话框命令)

2.对话框命令
FCKDialogCommand(命令名称,对话框标题,URl,宽度,高度)

3.定义工具栏
FCKToolbarButton(命令名称,按钮标题)

4.添加一个图标
IconPath=图标地址

5.注册到工具栏
FCKToolbarItems.RegisterItem(命令名称,工具栏);

插件机制:注册命令-定义工具栏-注册到工具栏

我的fckplugin.js文件内容

//注册
FCKCommands.RegisterCommand(
'uploadify',
new FCKDialogCommand(
'uploadify',
FCKLang.uploadifyDlgTitle,
FCKPlugins.Items['uploadify'].Path + "index.html",800,600
)
);
//定义工具栏
var ouploadifyItem = new FCKToolbarButton('uploadify', FCKLang.uploadify);
ouploadifyItem.IconPath = FCKPlugins.Items['uploadify'].Path + 'btn.png';
//注册
FCKToolbarItems.RegisterItem('uploadify', ouploadifyItem);

Fckeditor插件的语言文件命名方式是:

国家或地区.js。如中国是zh.js.简体中文是zh-cn.js.英文是en.js等等。我们建立两个”en.js”和”zh-cn.js”。
然后编辑语言文件。

FCKeditor插件语言的命名方式为:FCKLang.变量名=”语言定义”

我们编辑”en.js”。

我的en.js文件内容

FCKLang.uploadifyBtn = 'Insert/upload files';
FCKLang.uploadifyDlgTitle = 'uploadify plugin';
暂时先到这,呵呵,我也现学现卖!!
 

下面的文件就是操作的界面,也就是一个HTML文件,界面文件中应该包含如下语句.

<script language="javascript">
var dialog = window.parent ;
var oEditor = dialog.InnerDialogLoaded() ;
var FCKLang = oEditor.FCKLang ;
</script>

我的界面文件index.html内容如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试</title>
<link href="inc/uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="inc/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="inc/swfobject.js"></script>
<script type="text/javascript" src="inc/jquery.uploadify.v2.1.0.min.js"></script>
<script type="text/javascript">
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKLang = oEditor.FCKLang ; window.onload = function (){
window.parent.SetOkButton(true);
//加载界面的OK按钮
} function Ok()
{
FCK.InsertHtml(document.getElementById('info2').value);
//插入ID="info2"文本控件的内容到FCKeditor的编辑器内容
return true ;
} $(document).ready(function() {
$('#file_upload').uploadify({
'uploader' : 'inc/uploadify.swf',
'script' : 'upload.asp',
'cancelImg' : 'inc/cancel.png',
'folder' : '/userfiles',
'auto' : false,
'multi' : true,
'sizeLimit':1024*1024*10,
'buttonText': 'Pickup Files',
'queueID': 'fileQueue',
'buttonImg': 'inc/select.jpg',
'fileDesc' :'*.gif,*.jpg,*.png',
'fileExt' : '*.gif;*.jpg;*.png',
'onComplete':function(event,queueId,fileObj,response,data){
$('#info2').text($('#info2').text() + '<p><img src="'+response+'" ></p>\r');
//在页面上显示已上传文件的相对路径
$('#info').append($('#info').text() + '<img src="'+response+'" >\r');
//在页面上显示已上传的图片
}
});
});
</script>
</head>
<body>
<div id="fileQueue"><!--上传文件的列表--></div>
<input id="file_upload" name="file_upload" type="file" />
<p>
<a href="javascript:$('#file_upload').uploadifyUpload()">上传</a>|
<a href="javascript:$('#file_upload').uploadifyClearQueue()">取消上传</a>
</p>
<div id="info" ></div>
<textarea name="info2" id="info2" cols="45" rows="5"></textarea>
</body>
</html>

FCKeditor插件开发实例:uploadify多文件上传插件的更多相关文章

  1. Uploadify多文件上传插件.NET使用案例+PHP使用案例

    ploadify是一个非常好用的多文件上传插件 插件下载:http://www.uploadify.com 下载后需要用到的文件: 接下来就是直接添加代码: Default.aspx代码 <%@ ...

  2. uploadify多文件上传实例--C#

    下载uploadify文件 http://www.uploadify.com/ HTML(视图) <html lang="zh-cn"> <head> &l ...

  3. jquery uploadify文件上传插件用法精析

      jquery uploadify文件上传插件用法精析 CreationTime--2018年8月2日11点12分 Author:Marydon 一.参数说明 1.参数设置 $("#fil ...

  4. 详解jQuery uploadify文件上传插件的使用方法

    uploadify这个插件是基于js里面的jquery库写的.结合了ajax和flash,实现了这个多线程上传的功能. 现在最新版为3.2.1. 在线实例 实例中用到的php文件UploaderDem ...

  5. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  6. jQuery文件上传插件Uploadify(转)

    一款基于flash的文件上传,有进度条和支持大文件上传,且可以多文件上传队列. 这款在flash的基础上增加了html5的支持,所以在移动端也可以使用. 由于官方提供的版本是flash免费,html5 ...

  7. jQuery 文件上传插件:uploadify、swfupload

    jQuery 文件上传插件: uploadify.swfupload

  8. 一款基于uploadify扩展的多文件上传插件,完全适用于Html5

    http://www.uploadify.com/documentation/  官网里面有两个插件,一个是要使用flash插件才能文件上传的插件,另外一个是不需要使用要flash插件的文件上传插件完 ...

  9. 多文件上传插件Stream,是Uploadify的Flash版和Html5版的结合,带进度条,并支持html5断点续传(附件上传),拖拽等功能

    是根据某网的文件上传插件加工而来,支持不同平台(Windows, Linux, Mac, Android, iOS)下,主流浏览器(IE7+, Chrome, Firefox, Safari, 其他) ...

随机推荐

  1. Guava API学习之Multimap

    相信大家对Java中的Map类及其之类有大致的了解,Map类是以键值对的形式来存储元素(Key->Value),但是熟悉Map的人都知 道,Map中存储的Key是唯一的.什么意思呢?就是假如我们 ...

  2. 关于把A表中的数据复制到B表中。

    最近公司需要把sql中的数据给整理出来,这就牵涉到数据转移问题. 我平时是很少接触sql这一块的.所以碰到这个问题甚是伤脑筋. 不过还好,这问题并不像我想象中的那么的困难. 以前做过把数据插入到临时表 ...

  3. iOS开发 自定义navigationleftItem 之后手势失效的问题

    @property (nonatomic, strong) UIViewController *currentShowVC; //设置代理 self.navigationController.inte ...

  4. LeetCode_Permutation Sequence

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  5. MySQL的SQL_CALC_FOUND_ROWS真的很慢么?

    分页程序一般由两条SQL组成: SELECT COUNT(*) FROM ... WHERE .... SELECT ... FROM ... WHERE LIMIT ... 如果使用SQL_CALC ...

  6. acdream:Andrew Stankevich Contest 3:Two Cylinders:数值积分

    Two Cylinders Special JudgeTime Limit: 10000/5000MS (Java/Others)Memory Limit: 128000/64000KB (Java/ ...

  7. javaDay1 基础知识

    常用dos命令 •d: 回车  盘符切换 •dir(directory):列出当前目录下的文件以及文件夹 •md (make directory) : 创建目录 •rd (remove directo ...

  8. python之模块:decimal

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#数学计算import decimal#用于定点和浮点运算#文档:https://docs.pyt ...

  9. MVVM架构~knockoutjs系列之表单添加(验证)与列表操作源码开放

    返回目录 本文章应该是knockoutjs系列的最后一篇了,前几篇中主要讲一些基础知识,这一讲主要是一个实际的例子,对于一个对象的添加与编辑功能的实现,并将项目源代码公开了,共大家一起学习! knoc ...

  10. java基础 二分查找算法

    /*   * 折半查找法:   * 思路:   * 定义三个变量记录查找范围中最大.最小和中间的索引值,每次都是使用中间索引值与要查找的目标进行对比,如果不符合,那么就不停缩小查找范围   * */  ...