为FCKEDITOR添加导入Word文档功能

默认的Fckeditor具有从ms word粘贴的功能, 但是当你的word文档中包含图片的时候, 就会出现无法显示图片的错误,
在这里我们要实现直接导入word文档,如果其中包含图片,则自动分离图片并上传到服务器后在fckeditor中显示.

1. 为fckeditor添加自定义按钮
需要修改的文件:

1. fckconfig.js
2. zh-cn.js
3. fckeditorcode_ie.js(gecko的差不多)

 fckconfig.js: 添加导入word文档按钮
   找到这行中 FCKConfig.ToolbarSets["Default"] = [...
   'Paste','PasteText','PasteWord',在PasteWord
后插入'ImportWord'.

zh-cn.js
 设置上述按钮的中文说明
 PasteWord   : "从 MS Word 粘贴",
 ImportWord   : "导入Word文档",

 fckeditorcode_ie.js 在按钮中显示按钮
 找到
 case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;
 这行,在其后加入
 case 'ImportWord':B=new FCKToolbarButton('ImportWord',FCKLang.ImportWord,null,null,false,true,11);break;
 为按钮加入功能
 找到
 case 'PasteWord':B=new FCKPasteWordCommand();break;
 这行,在其后加入
 case 'ImportWord':B=new FCKDialogCommand('ImportWord',FCKLang.ImportWord,'/ImportWord/ImportWord.aspx',700,600);break;
 

这样就设置好了自定义按钮, 当用户点击这个按钮之后, 会自动弹出页面打开ImportWord.aspx这个文件.

 剩余的就是.net的工作了, ImportWord是我从网上下载的, 基本没有修改
 这行我修改为wdFormatFilteredHTML.
             docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
             null, doc, new object[] { saveFileName, WdSaveFormat.wdFormatFilteredHTML });

 大功告成, 如果打开页面后上传word文档会遇到权限错误
 请在web.config中的<system.web>中加入<identity impersonate="true" userName="Administrator" password="xxx" />这句即可解决.
 但是这样明显很不爽的是涉及到安全问题, 我试过其他的办法(http://blog.csdn.net/zhao8155363/archive/2007/10/29/1854309.aspx),
 皆没成功, 希望有知道别的办法的朋友告诉我.

 本文参考:http://www.cnblogs.com/life-ego/articles/1228370.html

 Fckeditor在.net下文件上传提示提示没有权限的解决办法

 首先下载FCKeditor.Net_2.6.3的source包并打开FCKeditor.Net_2.6.3,
 找到文件FileWorkerBase.cs
 第118行 Response javascript代码的那行, 改为
    Response.Write( @"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;}})();" );
 重新编译解决方案, 实用新的FredCK.FCKeditorV2.dll可以解决问题.

 http://files.cnblogs.com/andyran/ImportWord.rar

你可能感兴趣的:(fckeditor)