自定义FCKeditor的图片上传功能

关键问题:

WEB.XML配置:

程序代码 程序代码

      <servlet>
        <servlet-name>Connector</servlet-name>
        <servlet-class>com.fredck.FCK editor.connector.ConnectorServlet</servlet-class>
        <init-param>
            <param-name>baseDir</param-name>
            <param-value> /UserFiles/</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>SimpleUploader</servlet-name>
        <servlet-class>com.fredck.FCK editor.uploader.SimpleUploaderServlet</servlet-class>
        <init-param>
            <param-name>baseDir</param-name>
            <param-value> /UserFiles/</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>enabled</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>AllowedExtensionsFile</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>DeniedExtensionsFile</param-name>
            <param-value>php|php3|php5|phtml|asp|aspx|ascx| jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
        </init-param>
        <init-param>
            <param-name>AllowedExtensionsImage</param-name>
            <param-value>jpg|gif|jpeg|png|bmp</param-value>
        </init-param>
        <init-param>
            <param-name>DeniedExtensionsImage</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>AllowedExtensionsFlash</param-name>
            <param-value>swf|fla</param-value>
        </init-param>
        <init-param>
            <param-name>DeniedExtensionsFlash</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

  <servlet-mapping>
    <servlet-name>Connector</servlet-name>
    <url-pattern>/ fckeditor/ editor/filemanager/browser/default/connectors/ jsp/connector</url-pattern>
  </servlet-mapping>
  
  <servlet-mapping>
    <servlet-name>SimpleUploader</servlet-name>
    <url-pattern>/fck editor/ editor/filemanager/upload/simpleuploader</url-pattern>
  </servlet-mapping>  
  
  <taglib>  
   <taglib-uri>/FCK editor</taglib-uri>  
   <taglib-location>/WEB-INF/FCK editor.tld</taglib-location>  
</taglib>  

  <taglib><taglib-uri>pinEdit.tld</taglib-uri><taglib-location>
      /WEB-INF/lib/pinEdit.jar
    </taglib-location>
  </taglib>


fckeditor并非WEB PROJECT的名称,而只是 解压FCK后的根目录,即有路径WebRoot/fck editor/ editor

 <url-pattern>映射时不需要添加WEB PROJECT名称;

此外, 们还必须在WebRoot下建立文件夹: UserFiles ,其下 们可建立文件夹: File Image Flash,也可以不建立(系统在上传时会根据上传类型自动建立相应的文件夹)
============================================================
fck_image.js

196行
function Ok(){}
//图象插入“确定”按钮

203行
alert( FCKLang.DlgImgAlertUrl ) ;
//当没有图象URL时提示“请输入图象地址”,这个值分别定义在语言文件夹对应的语言js文件中

269行
function UpdateImage( e, skipId ){}
//更新、插入图象

    e.src = GetE('txtUrl').value ;
    SetAttribute( e, "_fcksavedurl", GetE('txtUrl').value ) ;
    SetAttribute( e, "alt"   , GetE('txtAlt').value ) ;
    SetAttribute( e, "width" , GetE('txtWidth').value ) ;
    SetAttribute( e, "height", GetE('txtHeight').value ) ;
    SetAttribute( e, "vspace", GetE('txtVSpace').value ) ;
    SetAttribute( e, "hspace", GetE('txtHSpace').value ) ;
    SetAttribute( e, "border", GetE('txtBorder').value ) ;
    SetAttribute( e, "align" , GetE('cmbAlign').value ) ;

//分别设置图象的各个属性值,这些属性分别对应fck_image.html中的各个文本输入框的ID。


281行
    // Advances Attributes

    if ( ! skipId )
        SetAttribute( e, 'id', GetE('txtAttId').value ) ;

    SetAttribute( e, 'dir'        , GetE('cmbAttLangDir').value ) ;
    SetAttribute( e, 'lang'        , GetE('txtAttLangCode').value ) ;
    SetAttribute( e, 'title'    , GetE('txtAttTitle').value ) ;
    SetAttribute( e, 'longDesc'    , GetE('txtLongDesc').value ) ;

    if ( oEditor.FCKBrowserInfo.IsIE )
    {
        e.className = GetE('txtAttClasses').value ;
        e.style.cssText = GetE('txtAttStyle').value ;
    }
    else
    {
        SetAttribute( e, 'class'    , GetE('txtAttClasses').value ) ;
        SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
    }

//对应“高级”选项卡的设置,在样式设置处并做了浏览器兼容判断


35-52行控制选项卡的显示

window.parent.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;

if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
    window.parent.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;

if ( FCKConfig.ImageUpload )
    window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;

if ( !FCKConfig.ImageDlgHideAdvanced )
    window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;

// Function called when a dialog tag is selected.
function OnDialogTabChange( tabCode )
{
    ShowE('divInfo'        , ( tabCode == 'Info' ) ) ;
    ShowE('divLink'        , ( tabCode == 'Link' ) ) ;
    ShowE('divUpload'    , ( tabCode == 'Upload' ) ) ;
    ShowE('divAdvanced'    , ( tabCode == 'Advanced' ) ) ;
}

不需要某个选项卡时只要注释掉相应代码即可 。

在fckeditorcode_id.js和fckeditorcode_gecko.js中有一个设置图片上传窗口大小的代码:

new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400)

这两个文件在FCK主目录下的editor/js目录下。
new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400)

修改图片上传的界面:

文件:fck_image.html

控制“确定”与“取消”按钮的位置与样式:

文件:fckdialog.html   309~316行左右

去掉选项卡:35行左右

window.parent.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;

我们只需注释此类语句即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值