在ASP.NET中配置FCKeditor【带word导入功能】

      编辑插件FCKeditor是相当好用的在线编辑插件,虽说有了新版本的插件CKeditor,但需要为上传文件而使用CKfinder,CKfinder需要附费。所以还是使用FCKeditor比较稳妥,下面就讲下如何在ASP.NET中配置FCKeditor.

 

<一>  配置使用FCKeditor的基本功能

    步骤1. 下载FCKeditor.zip和   FCKeditor.NET

              可以百度一下,很多地放都有下载。FCKeditor.NET主要是包含dll文件,FCKeditor.zip主要包括一些js功能。

   步骤2. 导入 FCKeditor.NET 中的FredCK.FCKeditorV2.dll文件

              解压FCKeditor.NET ,我这里的版本是FCKeditor.NET_2.5.zip,选择FCKeditor.Net_2.5\bin\Release\2.0\下的FredCK.FCKeditorV2.dll,当然如果是.NET Framework1.0 ,也可以选择1.0文件夹下的dll

              将FredCK.FCKeditorV2.dll复制到ASP.NET 工程文件夹的Bin文件夹下,并添加引用,如下图所示。

             

                  选择Bin目录下的FredCK.FCKeditorV2.dll文件,并点击确定。

 

                         如果要想该在线编辑插件如TextBox控件一样拖拽,可以在工具箱内右击鼠标,单击“选择项”,选择FredCK.FCKeditorV2.dll所在的位置,如下图所示。

 

点击确定后,即可在工具箱内看到该控件标示“FCKeditor”。

 

此时FCKeditor就可以和ASP.NET 服务器控件一样使用,但功能并没有添加上,因为并没有导入FCKeditor.zip中的内容,运行时会报错。

 

 

   步骤3. 复制 FCKeditor.zip中的整个文件夹fckeditor到ASP.NET 工程的根目录。

 

  此时已经可用FCKeditor的在线编辑功能,但是上传文件的功能默认是关闭的需要手动开启。

 

<二> 开启FCKeditor的上传文件功能(以图片为例)

    步骤1. 配置   Web.config

      在Web.config文件中的AppSettings节中加入两个键值对,如下所示

             <appSettings>

                  <add key="FCKeditor:BasePath" value="~/fckeditor/"/>

                 <add key="FCKeditor:UserFilesPath" value="/Files/" />

             </appSettings>

      注:~/fckeditor/ 表明fckeditor文件夹所在的位置。但/Files需要使用相对路径,主要是由于上传图片需要传递的是相当路径,而非客户端机器的机器路径。

   步骤2. 在网站根目录建立Files文件夹,并更改其权限为可写。  

 

   步骤3. 修改fckeditor/fckconfig.js文件

            在该文件中查找到_FileBrowserLanguage 和_QuickUploadLanguage

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


             将asp改为aspx
            var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
            var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php

 

   此时,就可以上传图片到服务器端。

 


  

<三> 添加FCKeditor的从Word导入功能(以图片为例)

 

         FCKeditor本身具有从Word粘贴的功能,但会造成格式的丢失,因此采取的方法是上传word到服务器端,利用C# 将其转换为html格式存储即可【以下部分代码来自网络】。

        [注:FCkeditor.Value可以获得FCKeditor编辑框内的值,其类型为string,因此在Sql Server数据库中可以用nvarchar或Text字段存储]

     步骤 1. 为fckeditor添加自定义按钮
              需要修改的文件有三个:
               a). fckconfig.js
               b). zh-cn.js
               c). 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,'dialog/ImportWord/ImportWord.aspx',700,600);break;

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

 

     步骤 2. 为fckeditor添加从Word导入功能(C#实现)

         剩余的就是.net的工作了, 这里提供一个文件夹下载.
                http://download.csdn.net/source/1681907
         里面包含Microsoft.Office.Interop.Word.dll 和ImportWord文件夹,ImportWord文件夹包含(ImportWord.aspx\ImportWord.aspx.cs).用法:在bin文件夹中引用 Microsoft.Office.Interop.Word.dll .把ImportWord文件夹放入fckeditor\editor\dialog文件夹中,修改这里面的两个文件.
        1\修改.cs文件:
             docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
             null, doc, new object[] { saveFileName, WdSaveFormat.wdFormatFilteredHTML });
          2\修改.aspx文件
             <script src="../common/fck_dialog_common.js" type="text/javascript"></script>

     步骤 3. 更改上传word文件路径

          1. 找到 string phyPath = Server.MapPath("~/") + "Portals\\0\\WordImport\\";

                  将"Portals\\0\\WordImport\\"改为自己的路径,这里我改为

                        string phyPath = Server.MapPath("~/") + "Files\\file\\";

         2.找到 string strNew = Page.Request.ApplicationPath + "/Portals/0/WordImport/" + strOld;

                  将"/Portals/0/WordImport/"改为"Files/file/",注意在Files的前面不能有'/',否则会找不到word文档中包含图片的路径

    步骤 4. 权限设定

          在调试 阶段上述设定可能没有问题,但发布之后可能会出现权限问题,如检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。。。”的错误。 我当时在调试的时候并没有出错,但在发布到服务器上就出现了上述问题【我的服务器是Server 2008 + IIS7.0】,采取配置Dcom组件将问题解决。

     1。在“运行”中输入“dcomcnfg”,进入“组件服务”,依次选择->“组件服务”->"计算机"->"我的电脑"->"DCOM配置"->"Microsoft Word 文档"。右击“属性”,选择“标示”标签下的“交互式用户”,如下图所示。

    

 

   2.分别配置“安全”标签下的“启动和激活权限” 和 “访问权限”

    

               点击“安全”标签下的“启动和激活权限”

             

 

             点击“编辑”在弹出的新窗口,点击“添加”按钮,在“选择用户或组”窗口点击高级,在其中查找“ASP.NET”用户 和“Network”用户组,点击确定,勾选上本地启动和本地激活。

       【这里要特别注意注意:在IIS6.0中要添加“ASP.NET”用户 和“Network”用户组; 而在IIS7.0中已经没有“ASP.NET”,需要添加的是“Network Service”,为了保险,还可加上IUSER】

             “访问权限”的编辑与上面相同,唯一不同的是其权限仅需要“本地访问”即可。

 

至此,FCKeditor就具有了从word导入的功能了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值