为FCKEDITOR添加导入Word文档功能

来源:互联网 发布:淘宝授权品牌要钱吗 编辑:程序博客网 时间:2024/05/16 15:33

 

 

默认的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可以解决问题.

原创粉丝点击